Front page   New List of pages Search Recent changes   Help   RSS of recent changes

Backup diff of AVR vs current(No. 5)


  • The added line is THIS COLOR.
  • The deleted line is THIS COLOR.
#contents

* 参考文献 [#t7052c18]

* 備忘録 [#f534b1f7]
* ATmega168 [#lb5e2e1e]

* ISP (In System Programming) [#nc285729]
** ATmega168 ピンアサイン [#je202660]
#ref(./ATmega168_pin.jpg,20%)

** ATmega168 ヘッダファイル [#p57ebef6]
#ref(./iomx8.h)

** ISP (In System Programming) [#nc285729]

こんな感じで書き込んでいます。

&ref(./ISP1.jpg,50%);

&ref(./ISP2.jpg,25%);
&ref(./ISP3.jpg,25%);


* ATtin26 [#v3ab43ad]

** ATtiny26 ヘッダファイル [#cf3acf27]
#ref(./iotn26.h)

* Sample Codes [#v5228927]

** Timer/Counter [#v4176f9c]
** ATmega168 [#l15a64eb]

*** Timer/Counter [#v4176f9c]
Timer/Counter0とTimer/Counter2は8ビット、Timer/Counter1は16ビット。

- [[Timer/Counter0 (ATmega168)]]
- [[Timer/Counter0 High Speed PWM Mode (ATmega168)]]
- [[Timer/Counter1 (ATmega168)]]
- [[Timer/Counter2 (ATmega168)]]
- [[Timer/Counter2 High Speed PWM Mode (ATmega168)]]

** AD Converter [#rbdfe13c]
*** AD Converter [#rbdfe13c]

- [[AD Converter (ATmega168)]]

** Communication [#w4347ee6]
*** Communications [#w4347ee6]

*** USART [#a861362a]

- [[USART (ATmega168)]]
- [[TWI(I2C) (ATmega168)]]

- usart.h
 #define	FOSC	8000000		// クロック周波数 (8MHz)
 #define	BAUD	38400		// ボーレート
 #define	MYUBRR	FOSC/16/BAUD-1
 
 void USART0_Init(unsigned int baud);		// シリアル通信を初期化
 void USART0_Set_RXCIE();			// 受信完了割り込みを許可
 void USART0_Transmit(unsigned char data);	// 1バイトデータ送信
 unsigned char USART0_Receive(void);		// 1バイトデータ受信
 void USART0_Transmit_Str(char *str);		// 文字列送信
 void USART0_Transmit_Num(int num);			

- usart.c
 //-----------------------------------------------------------------------------
 // シリアル通信関係
 //-----------------------------------------------------------------------------
 #include <avr/io.h>
 #include "usart.h"
 
 //----- シリアル通信を初期化 --------------------------------------------------
 void USART0_Init(unsigned int baud)
 {
 	UBRR0H = (unsigned char)(baud>>8);	// ボーレート設定(上位バイト)
 	UBRR0L = (unsigned char)baud;		// ボーレート設定(下位バイト)
 	UCSR0C = (3<<UCSZ00);			// フレーム形式設定(8ビット)
 	UCSR0B |= _BV(RXEN0) | _BV(TXEN0);	// 送受信許可
 }
 
 //----- 受信完了割り込みを許可 ------------------------------------------------
 void USART0_Set_RXCIE()
 {
 	UCSR0B |= _BV(RXCIE0);    // 受信完了割り込み許可
 }
 
 //----- 1バイトデータ送信 ----------------------------------------------------
 void USART0_Transmit(unsigned char data)
 {
 	while (!(UCSR0A & (1<<UDRE0)));		// 送信バッファ空き待機
 	UDR0 = data;				// データ送信(送信開始)
 }
 
 //----- 1バイトデータ受信 ----------------------------------------------------
 unsigned char USART0_Receive(void)
 {
 	while (!(UCSR0A & (1<<RXC0)));		// 受信完了待機
 	return UDR0;				// 受信データ取得
 }
 
 //----- 文字列送信 ------------------------------------------------------------
 void USART0_Transmit_Str(char *str)
 {
 	while (*str != 0) {
 		USART0_Transmit(*str);
 		*str++;
 	}
 }
 
 //----- 整数値(4桁)送信 ----------------------------------------------------
 void USART0_Transmit_Num(int num)
 {
 	unsigned char temp;
 	int ketaval = 1000;
 
 	while (ketaval != 0) {
 		temp = num / ketaval;
 		USART0_Transmit('0'+temp);
 		num -= (ketaval*temp);
 		ketaval /= 10;
 	}
 }
** ATtiny26 [#i68404dd]

*** Timer/Counter [#z8441e18]

- [[Timer/Counter0 (ATtiny26)]]


* Links [#nf308f17]
- [[Atmel:http://www.atmel.com/]]
- [[AVR wiki:http://avrwiki.com/wiki/index.php/Main_Page]]
- [[AVR Freaks:http://www.avrfreaks.net/]]
- [[AVR Television:http://www.avrtv.com/]]
- [[WinAVR:http://winavr.sourceforge.net/]]
- [[AVR wiki in Japan:http://avrwiki.jpn.ph/wiki.cgi?page=FrontPage]]
- [[AVRのI2C通信プログラミング(エレキジャック):http://www.eleki-jack.com/mycom2/avr/avri2c/]]