Das hängt davon ab, was Du machen möchtest. Benötigst Du unbedingt die Arduino Libs?
Wenn nicht, dann kannst Du mit ein paar Tricks das Programm optimieren und auf einem Attiny A,C oder D laufen lassen.
Beispiel:
Es handel sich hier um den Code für das Arduino Nikon Intervalometer.
Compiliert für den Arduino Duemilanove
Binary sketch size: 1,640 bytes (of a 30,720 byte maximum)
Der gleich Code für den Attiny2313 compiliert:
Binary sketch size: 1,392 bytes (of a 2.048 byte maximum)
Und jetzt optimiert:
Binary sketch size: 444 bytes (of a 2.048 byte maximum)
Meine Idee ist, Code zu generieren, der sowohl auf Arduino als auch mit winavr zu kompieren ist.
Die Tricks die ich verwende:
...
#define F_CPU 400000UL
// we build some macros first.
// to increase IR-LED current mulltiple ports can be used
#define IR_LED_ON() PORTD |= (1<<PD1) //| (1<<PB1) | (1<<PB2)
#define IR_LED_OFF() PORTD &= ~(1<<PD1) // | (1<<PB1) | (1<<PB2))
#define LED_ON() PORTB |= (1<<PB1) | (1<<PB2) | (1<<PB3);
#define LED_OFF() PORTB &= ~((1<<PB1) | (1<<PB2) | (1<<PB3));
#define PULSE_IR() IR_LED_ON(); _delay_us(13); IR_LED_OFF(); _delay_us(13)
#define PULSE_Wait() IR_LED_OFF(); _delay_us(26)
...
und in der init Funktion:
void setup() {
_OUTPUT(D,pinIRLED); // set the pin as an output IR-LED
_OUTPUT(B,pinCTRLED); // set the pin as an output CTRL-LED
_INPUT(D,5); // initialize the pushbutton pin as an input:
// _SET(D,5); // with pullup
}
_OUTPUT, etc. sind auch wieder entsprechende Macros. Das ist schon recht HW nah.
Im Prinzip können alle LIBs Hardware nah verkleiner werden. Probleme habe ich noch mit Servos. Das läuft noch nicht so, wie ich mir das vorstelle.
Die Arduino Umgebung ist schon eine gute Idee für die ersten Schritte.
Mittlerweile habe ich einen Programmer auf einem Breadboard und mache rapid Prototyping auf einem anderen Breadboard mit diversen Attinys und minimalster Anzahl von Bauteilen.
Den Einstieg zu den attinys habe ich über die Kollegen am MIT (high low tech) gefunden.
Mein Ziel ist es weiterhin möglichst lesbaren Code zu generieren, mal abgesehen von den Macros.
F41_ARDU