gör ett litet program för en avr atmega 128, har hållit på och blinkat lite dioder m.m. i assembler och även interupts. men har nu tänkt gå över till C. Men det finns inte många nybörjarguider eller tutorials i C för avr på internet. Hittade en på tyska, så de gick väl iaf ok där. nu lite frågor:
Kod: Markera allt
#include <avr/io.h>
#include <stdint.h>
#include <avr/interrupt.h>
int
main (void)
{
sei(); /*aktivera globala interupts*/
DDRB = 0x00; /* Alla PinB är ingångar*/
DDRA = 0xFF; /* Alla PinA är utgångar*/
EICRA = 0x0F; /* Interupt 1 och 2 aktiverat som Falling Edge*/
EIMSK = 0X03; /* INT1 och INT2 Aktiverat som external interupt*/
}
2. Samtidigt när ett interupt sker, så kan man ju för interupt 4 - 7 tror jag att de är, ställa in så att interupt sker till exempel vid "logical change". Då kan man sätta till exempel en av utgångarna hög. Men för att få att porten går hög enbart när man till exempel drar interupten låg, och "interupt vektorn" (programsnutten) sker endast när denna knapp är intryckt?
Jag har studerat databladet, samt läst en himla massa på den tyska sidan, tyskan är lite ringrostig dock.
Tack på förhand, all hjälp och tips uppskattas