AVR Programming 2012-09-16 17:26:41 | 日記 AVR Programmingのトライ « 議論の部屋(2ch’)【荒ら... | トップ | PIC Programming »
26 コメント コメント日が 古い順 | 新しい順 K2EditorをInstallした (kawana) 2012-09-20 16:11:45 K2EditorをInstallし、とりあえずLCDm168.c、LCD.c、LCD.hをK2Editorで入力してみる。K2Editorは、シンプルで使い易い気がした。 返信する m168LCD.c (kawana) 2012-09-21 19:36:20 m168LCD.c, LCD.c, LCD.hのProgram Listが有ったので、入力ほぼ終了、動作しそう。 返信する 基板を整理しました。 (kawana) 2012-09-23 18:28:27 AVRの基板が一番多かった。あと5箱位、未整理が有るこれを整理すれば、だいぶ整理出来た筈だが? 返信する Studio6 をInstall (kawana) 2012-10-18 10:07:18 WinXP、古いStudioXXは忘れStudio6 をInstallした。今後は、これで作成する事にした。 返信する AVRもPICのProgramもすかり忘れた (kawana) 2012-10-19 16:28:14 頭のClearのため、ラジオ少年さんのPi Programを研究する事にした。良くわからないが、一応入力しCompileしたらError 0に成った。PC用のProgramらしいので答えをPrintfで表示しているのでAVR用にする為にはUARTに出力する必要が有りそうだ。TRでInterfaceするか、RS232C ICを使うか、AE-UM232C(RS-USB)を使用するか選択に迷う。とりあえずは、RS232C ICで行く事にしよう。詳細は、ラジオ少年さん、senshuさんサイトに関連記事が有ります。私には、この辺が第一の壁か? 返信する WinXPPCが忘れられない? (kawana) 2012-10-19 16:37:33 WinXP PCが忘れられない?長く遊んでいたので使い易い気がしたが、再Installして使用してみると、Studio6ではかなり重たい気がする。Win7のPCには、LPT、RSのコネクタが無い、さびしい気がするが、諦めよう。いっか、ヨドバシカメラで、オプションでレガシ-のRSコネクタが接続出来るか聞いてみよう。 返信する Studio4.18 Install (kawana) 2012-10-23 19:28:44 Studio4.18 Installした。GCCをもう一度勉強するため。 返信する ATTINY2313でRSoutの実験 (kawana) 2012-11-03 17:55:51 ATTINY2313でRSoutの実験をした。動作しないので、ひとつひとつ確認しながら作業を進めた1.ProgramはP82以降のUSART_Init(unsigned int baud) void USART_Transmit(unsigned int data)Programを変更while(1){//USART_Transmit(0x11);//USART_Transmit(0x88);//USART_Transmit(0x55);//USART_Transmit(0xAA);USART_Transmit(0x41); //A}2.Pin3(TXD)をオシロで確認3.TeratermでAが表示される事確認今日は、ここまで。 返信する Visual C++ 2010 Programing練習 (kawana) 2012-11-07 21:23:22 表示のtestとして#include <stdio.h>int main(void){ printf("3.1415 9265 3589 7932 3846 2643 3832 7905 2884 1971 6939 9375 \n"); return 0;}表示3.1415 9265 3589 7932 3846 2643 3832 7905 2884 1971 6939 9375 こんな表示が出来たら良いな 返信する ATTINY2313 pi計算 (kawana) 2012-11-12 10:39:18 ATTINY2313 pi計算 size比較Studio4.1.9 Os O0 O3 Program 4746 5412 6126 Data 364 264 264Studio6 Program 2298 (112%) Memory OverflowStudio6のCompilerの出力の最適化が行われている?AVR-gcc-4.7.2を使用すれば、2048に収まるのか。 返信する 計算は出来たけれど (kawana) 2012-11-12 12:57:00 3.243F6A8885A308D313198A2E03707344A4093822299F31D0082EFA98EC4E6C89上記の様な結果表示が出来ましたが、RSoutでも80文字出力後CR、LFは可能(TeraTerm Window)なのでしょうか? 返信する AVR-gcc-4.7.2のmakefile? (kawana) 2012-11-12 13:12:09 Studio6で、 makefileの出力は出来ないのでしょうか?出力出来れば、これをAVR-gcc-4.7.2のmakefilenに書き換えたいと思うのですが、 返信する DOS窓の開き方は理解 (kawana) 2012-11-12 21:22:53 DOS窓の開き方は理解しました。 返信する Studio6でLCD表示Program (kawana) 2012-11-17 18:48:12 Studio6も少し分かりかけた事、Win7PCではあまり遅くは感じ無いので、LCD表示でもやってみようと思う。でもProgramListを紛失しているし最初から入力するのはもったいない、LCD.cLCD.hなどfaileを探してみよう。そして、考えつくならば、PORTの変更が容易に出来る事を考えて見ようと思う。まずは基本から。(次の課題としてDB,E,RSのばらばらなど。)あまりメリットは無いと思うのだが、どこまでやるか、どこまで出来るかは未定 返信する m168LCD.cが有った。 (kawana) 2012-11-17 20:29:36 Studio6でCompileしてみるとOKに成った。DBを任意のPortに変更は、DataをPortのlowerbit(bo-b3)出力している物が多い。Dataのbitを見て、Port変換Tableを作成して行えば良い様な気がする。配線を変更するのは面倒なのでばらばらDBで作り、TESTしてみようと思う。どうして動かないか、考えて見る事にした。一発で動かない事100%。 返信する Studio6 makefile (kawana) 2012-11-18 05:45:53 ################################################################################# Automatically-generated file. Do not edit!################################################################################SHELL := cmd.exeRM := rm -rfUSER_OBJS :=LIBS := PROJ := O_SRCS := C_SRCS := S_SRCS := S_UPPER_SRCS := OBJ_SRCS := ASM_SRCS := PREPROCESSING_SRCS := OBJS := OBJS_AS_ARGS := C_DEPS := C_DEPS_AS_ARGS := EXECUTABLES := OUTPUT_FILE_PATH :=OUTPUT_FILE_PATH_AS_ARGS :=AVR_APP_PATH :=$$$AVR_APP_PATH$$$QUOTE := "ADDITIONAL_DEPENDENCIES:=OUTPUT_FILE_DEP:=# Every subdirectory with source files must be described hereSUBDIRS := # Add inputs and outputs from these tool invocations to the build variables C_SRCS += \../LCD2.c \../m168LCD2.cPREPROCESSING_SRCS += ASM_SRCS += OBJS += \LCD2.o \m168LCD2.oOBJS_AS_ARGS += \LCD2.o \m168LCD2.oC_DEPS += \LCD2.d \m168LCD2.dC_DEPS_AS_ARGS += \LCD2.d \m168LCD2.dOUTPUT_FILE_PATH +=m168LCD2.elfOUTPUT_FILE_PATH_AS_ARGS +=m168LCD2.elfADDITIONAL_DEPENDENCIES:=OUTPUT_FILE_DEP:= ./makedep.mk# AVR32/GNU C Compiler./%.o: .././%.c @echo Building file: $< @echo Invoking: AVR/GNU C Compiler : (AVR_8_bit_GNU_Toolchain_3.4.0_663) 4.6.2 $(QUOTE)C:\Program Files (x86)\Atmel\Atmel Studio 6.0\extensions\Atmel\AVRGCC\3.4.0.65\AVRToolchain\bin\avr-gcc.exe$(QUOTE) -funsigned-char -funsigned-bitfields -O1 -fpack-struct -fshort-enums -g2 -Wall -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -mmcu=atmega168 -o"$@" "$<" @echo Finished building: $<# AVR32/GNU Preprocessing Assembler# AVR32/GNU Assemblerifneq ($(MAKECMDGOALS),clean)ifneq ($(strip $(C_DEPS)),)-include $(C_DEPS)endifendif# Add inputs and outputs from these tool invocations to the build variables # All Targetall: $(OUTPUT_FILE_PATH) $(ADDITIONAL_DEPENDENCIES)$(OUTPUT_FILE_PATH): $(OBJS) $(USER_OBJS) $(OUTPUT_FILE_DEP) @echo Building target: $@ @echo Invoking: AVR/GNU Linker : (AVR_8_bit_GNU_Toolchain_3.4.0_663) 4.6.2 $(QUOTE)C:\Program Files (x86)\Atmel\Atmel Studio 6.0\extensions\Atmel\AVRGCC\3.4.0.65\AVRToolchain\bin\avr-gcc.exe$(QUOTE) -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) -Wl,-Map="m168LCD2.map" -Wl,--start-group -Wl,-lm -Wl,--end-group -mmcu=atmega168 @echo Finished building target: $@ "C:\Program Files (x86)\Atmel\Atmel Studio 6.0\extensions\Atmel\AVRGCC\3.4.0.65\AVRToolchain\bin\avr-objcopy.exe" -O ihex -R .eeprom -R .fuse -R .lock -R .signature "m168LCD2.elf" "m168LCD2.hex" "C:\Program Files (x86)\Atmel\Atmel Studio 6.0\extensions\Atmel\AVRGCC\3.4.0.65\AVRToolchain\bin\avr-objcopy.exe" -j .eeprom --set-section-flags=.eeprom=alloc,load --change-section-lma .eeprom=0 --no-change-warnings -O ihex "m168LCD2.elf" "m168LCD2.eep" || exit 0 "C:\Program Files (x86)\Atmel\Atmel Studio 6.0\extensions\Atmel\AVRGCC\3.4.0.65\AVRToolchain\bin\avr-objdump.exe" -h -S "m168LCD2.elf" > "m168LCD2.lss" "C:\Program Files (x86)\Atmel\Atmel Studio 6.0\extensions\Atmel\AVRGCC\3.4.0.65\AVRToolchain\bin\avr-size.exe" "m168LCD2.elf" # Other Targetsclean: -$(RM) $(OBJS_AS_ARGS)$(C_DEPS_AS_ARGS) $(EXECUTABLES) rm -rf "m168LCD2.elf" "m168LCD2.a" "m168LCD2.hex" "m168LCD2.lss" "m168LCD2.eep" "m168LCD2.map"少し、avr-gcc-4.7.2と同じ様な感じ? 返信する LCD.c (kawana) 2012-11-18 09:05:17 LCD.cの変更でPORTC -, reset, LCD_b7, b6, b5, b4, L_e, L_rsの変更が出来そうな気がした。 返信する m168LCDBL10M.c (kawana) 2012-11-19 20:41:56 昔作ったm168LCDBL10M.cをCopyしてCompileしhexを書き込んだが動作しない。甘く見ていたようだ。昔動いたんだが?これがダメな事が分かった。1行目は何とか表示しているのだが、NGは、LCDの2行目SETcommmandが動作しないと言うトラブルだった。LCD制御commandをひとつひとつcheckしていく方法しか無いと思えてきた。commandの実行時間に注意してwaitが適切か見てゆく必要が有りそうだ。時間がかかるだろう。 返信する 修正しなくてはいけないwarning (kawana) 2012-11-20 19:42:37 warning error を見落としていた。1行目は('L'); でOk2行目は("A");に成っていた。 lcd_gotopos(0,0); lcd_putdat('L'); lcd_putdat("C");//NG../M168lcd1.c: In function 'main':../M168lcd1.c:34: warning: passing argument 1 of 'lcd_putdat' makes integer from pointer without a castwarning error も修正しなくてはダメな例。 返信する PORTB xxcccc ER bit 配置 (kawana) 2012-11-21 06:31:57 LCD.cの変更だけで出来た。void lcd_cmd_s(uint8_t cmd) { // XXCCCCER uint8_t wk; // 76 5432 10 LCD_CTL_PORT &= ~_BV(LCD_RS); // RS=0 cmd wk = LCD_DATA_PORT; //wk=in(LCD_DATA_PORT); wk = wk & 0x03; // E,RS wk = wk | cmd << 2; // wk + cmd<--shift 2 LCD_DATA_PORT=wk;//output( XX CCCC ER lcd_e();------------------------Studio418 Studio6770 644 Flash2 2 DataStudio6の方がCode Sizeが小さい。 返信する char, string to UART (kawana) 2012-11-23 16:03:40 char, string to UARTの基礎が出来ていないのでsampleを探した。uart_putc('A);//1 char outuart_put_string("1234567890 \r\n);//1234567890 outの真似したProgramの動作確認をした。 返信する 何を作ろうか (kawana) 2012-11-23 20:17:12 何を作ろうかと考えてみても、これと言った物が浮かばない。もう少し考えて見よう。 返信する winXPでStudio6 (kawana) 2012-11-24 19:01:11 WinXPでStudio6を起動しProgram作成では、待たされる時間が長いが、Program作成画面に行くまでの時間が掛かる事(1.5分くらい)が分かった。何回も使用して行く内どこで待たされるか分かった。そこで、長く掛かる点ではじっと待ち、次のKEY操作をしない様にしたら、ロックされれる事無く使用出来た。気長に待っ事で問題は、解消された。 返信する LCD表示Programでトラブル (kawana) 2012-11-25 19:24:59 色々な接続でLCD表示Programを作成していたが、昨日まで動作していたProgramが動作しないと言うトラブルに遭遇してしまった。原因は#define F_CPU 8000000// RC 8 Mの宣言箇所がまずかった。_delay_ms(m);は、LCD.C、mainで使用しているのでLCD.C、mainの両方で必要であった。port LCD.c XXER CCCC wk=wk & 0x30;// E,R saveBLtpe wk=wk | cmd;// ER | cmdXXCC CCER wk=wk & 0x03;//B52type wk=wk | cmd<<2;// CCCC ERXX wk=wk & 0x0C;// E,RDUtype wk=wk | cmd<<4;at Studio6 返信する 誤記修正 (kawana) 2012-11-26 16:26:43 XXCC CCER wk=wk & 0x03;//B52type wk=wk | cmd<<2<<は大文字でないと削除されてしまう事を忘れた。 返信する ATXMEGA16A4 初期clock 2M (kawana) 2012-11-26 19:40:07 ATXMEGA16A4 初期clock 2MHzらしい。_delay_ms(100);#define F_CPU 2000000UL // 2MHzとすると100ms周期が得られた。初期設定は、2MHzに成っていると思われる。 返信する コメントをもっと見る 規約違反等の連絡 コメントを投稿 goo blogにログインしてコメントを投稿すると、コメントに対する返信があった場合に通知が届きます。 ※コメント投稿者のブログIDはブログ作成者のみに通知されます 名前 タイトル URL ※名前とURLを記憶する コメント ※絵文字はJavaScriptが有効な環境でのみご利用いただけます。 ▼ 絵文字を表示 携帯絵文字 リスト1 リスト2 リスト3 リスト4 リスト5 ユーザー作品 ▲ 閉じる コメント利用規約に同意の上コメント投稿を行ってください。 コメント利用規約に同意する 数字4桁を入力し、投稿ボタンを押してください。 コメントを投稿する
K2Editorは、シンプルで使い易い気がした。
有ったので、入力ほぼ終了、動作しそう。
これを整理すれば、だいぶ整理出来た筈だが?
今後は、これで作成する事にした。
研究する事にした。
良くわからないが、一応入力しCompileしたらError 0に成った。
PC用のProgramらしいので答えをPrintfで表示しているのでAVR用にする為にはUARTに出力する必要が有りそうだ。
TRでInterfaceするか、RS232C ICを使うか、
AE-UM232C(RS-USB)を使用するか選択に迷う。
とりあえずは、RS232C ICで行く事にしよう。
詳細は、ラジオ少年さん、senshuさんサイトに関連
記事が有ります。私には、この辺が第一の壁か?
長く遊んでいたので使い易い気がしたが、再Installして
使用してみると、Studio6ではかなり重たい気がする。
Win7のPCには、LPT、RSのコネクタが無い、さびしい
気がするが、諦めよう。
いっか、ヨドバシカメラで、オプションでレガシ-の
RSコネクタが接続出来るか聞いてみよう。
GCCをもう一度勉強するため。
動作しないので、ひとつひとつ確認しながら作業を進めた
1.ProgramはP82以降の
USART_Init(unsigned int baud)
void USART_Transmit(unsigned int data)
Programを変更
while(1){
//USART_Transmit(0x11);
//USART_Transmit(0x88);
//USART_Transmit(0x55);
//USART_Transmit(0xAA);
USART_Transmit(0x41); //A
}
2.Pin3(TXD)をオシロで確認
3.TeratermでAが表示される事確認
今日は、ここまで。
#include <stdio.h>
int main(void)
{
printf("3.1415 9265 3589 7932 3846 2643 3832 7905 2884 1971 6939 9375 \n");
return 0;
}
表示
3.1415 9265 3589 7932 3846 2643 3832 7905 2884
1971 6939 9375
こんな表示が出来たら良いな
Studio4.1.9 Os O0 O3
Program 4746 5412 6126
Data 364 264 264
Studio6
Program 2298
(112%) Memory Overflow
Studio6のCompilerの出力の最適化が行われている?
AVR-gcc-4.7.2を使用すれば、2048に収まるのか。