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);
}

等整個專案做完再把這一篇補完。

results matching ""

    No results matching ""