0

ATmega168でUSART受信割り込み、シリアルエコー

mega168でUART受信割り込みできた。

回路はmega8の時と同じ。

さっきできなかった理由は割り込みベクタ名が間違ってた為だった。

コンパイル結果をよく見ると SIGNAL(SIG_UART_RECV)の所でwarningが出ていたので、avr-gccのフォルダの中のコードをよく読んだらSIG_USART_RECVになっていた。

コンパイラのバージョンというわけではなく、ATmega8のコードではSIG_UART_RECVで通るのでATmega168以降はSIG_USART_RECVに変わったみたいだ。

あとavr/signal.hは廃止されてavr/interrupt.hに統合される模様。

■関連記事

s.h.log: AVR – MEGA8のUART送受信

s.h.log: AVR – ATMega8でUSARTエコー

■コード

SourceCode, hex, Makefile(avr-gcc 3.4.6)

Read more

0

ATmega168でシリアルエコー

8MHz駆動になったmega168で、UARTエコー。

シリアルコンソールで送信した値がそのまま帰ってくる。

ATMega8の時とは違って、受信割り込みに反応して返すのではなくmain()の中のループで受け取って返している。というか受信割り込みから復帰できないので。

今晩中に解決できるといいな…

SourceCode, hex, Makefile(avr-gcc 3.4.6)

Read more

0

ATmega168のクロックを内蔵8Mhzに切り替える

マルツで買ったATmega168に「avrsp -fl11100010」して、8Mhzで動かす設定に変えた。

ATMega168ATmega168 USART,LED



最初は1MHz
なのでこのままでは使い物にならないので、avrspを使ってヒューズビットのロービットを書き換えて内蔵8MHzで動かす。mega8とはロービットが微妙に変わっているので、mega8そのままではできない。

Read more