Observera: ATmegorna har interna klockgeneratorer, så att de kan köra utan extern klocka.
Den interna är dock inte så stabila, och kan variera stort i frekvens.
Vid t.ex. UART-kommunikation, så är detta ett problem.
Se därför till att koppla in en EXO3:a (se Kringutrustning), och sätta lämpliga säkringar.
OBS. De nya virkorten från 2023 har redan en EXO3 ansluten.
De AVR-processorer vi använder har en extern reset-ingång. Det är viktigt att inte lämna denna reset-ingång oansluten, utan koppla in den till något som ger en väldefinierad reset-signal, t ex en tryckknapp som ger hög eller låg signal. Reset-ingången på processorn är nämligen inblandad under själva programmeringen av processorn. Om reset-ingången är oansluten kan vissa delar av processorn felaktigt programmeras med något som sedan inte går att återställa. Alltså, anslut alltid reset-ingången.
C-kompilatorn för AVR är inbyggd i Atmel Studio. C-kompilatorn baseras på GCC, men någon egentlig officiell dokumentation över C för just AVR finns inte. Däremot finns ganska mycket information på internet om t ex AVR Libc, exempelprojekt med C-programmering och diverse tutorials med just C för AVR. Se länkar nedan.
Några nyttiga länkar för den som programmerar i assembler.
Den som vill skriva effektiv C-kod kan också ha nytta av att veta vilka instruktioner kompilatorn har till sitt förfogande.
T.ex. PORTB |= (1<<PINB3);
blir till sbi PORTB, PINB3
som går på en klockcykel, medan PORTB |= (1<<x);
kommer generera en loop för att räkna ut 1<<x
.
Raspberry Pi använder 3.3V logik på GPIO-porten. AVR:erna använder 5V TTL-nivå. Kopplar man ihop dessa utan nivåskiftare är det stor risk att något går sönder. På sidan Kommunikation finns info om hur Raspberry Pi och AVR:er kan kommunicera.