ATtiny85可以算是濃縮版的arduino,連既有的API也濃縮了不少。
總共有5個IO可以使用,所以如果專案使用的IO不到五個就可以考慮用ATtiny
一開始要解決的是IDE的問題,我是參考這一篇(http://www.instructables.com/id/Digispark-DIY-The-smallest-USB-Arduino/\)就順利解決了
driver的部分可以在Digistump wiki內找到(http://digistump.com/wiki/digispark/tutorials/connectingpro\)
到此為止是解決upload的問題
如果是拿到新的IC要燒錄bootloader呢?跟Atmega328一樣的做法,可以參考這一篇http://highlowtech.org/?p=1695
因為能省則省的原因,使得ATtiny沒有內建tone()這個API,所以我找了這一篇簡介,是用http://www.technoblogy.com/show?KVO
/* TinyTone for ATtiny85 */
// Notes
const int Note_C = 239;
const int Note_CS = 225;
const int Note_D = 213;
const int Note_DS = 201;
const int Note_E = 190;
const int Note_F = 179;
const int Note_FS = 169;
const int Note_G = 159;
const int Note_GS = 150;
const int Note_A = 142;
const int Note_AS = 134;
const int Note_B = 127;
int Speaker = 1;
void setup()
{
pinMode(Speaker, OUTPUT);
}
void loop()
{
playTune();
delay(10000);
}
void TinyTone(unsigned char divisor, unsigned char octave, unsigned long duration)
{
TCCR1 = 0x90 | (8-octave); // for 1MHz clock
// TCCR1 = 0x90 | (11-octave); // for 8MHz clock
OCR1C = divisor-1; // set the OCR
delay(duration);
TCCR1 = 0x90; // stop the counter
}
// Play a scale
void playTune(void)
{
TinyTone(Note_C, 4, 500);
TinyTone(Note_D, 4, 500);
TinyTone(Note_E, 4, 500);
TinyTone(Note_F, 4, 500);
TinyTone(Note_G, 4, 500);
TinyTone(Note_A, 4, 500);
TinyTone(Note_B, 4, 500);
TinyTone(Note_C, 5, 500);
}
等整個專案做完再把這一篇補完。