Det er netop det linien PORTA = PORTA ^0x80; gør. Den toggler udgangen - altså sætter den til det modsatte af, hvad den var før :-)
Det er netop det linien PORTA = PORTA ^0x80; gør. Den toggler udgangen - altså sætter den til det modsatte af, hvad den var før :-)
-- Mvh. Tomas
Carsten skrev:
Jeg prøver forslagene af asap :-)
-- Mvh. Tomas
Nu ser min kode sådan ud.
Resultatet er desværre stadig det samme. :-( (PORTA.7 er stadig konstant ON)
#include
/** * @brief Macro for bitmanipulation */ #define sbi(arg, BitNo) (arg |= (1
Tomas, læs nu mit tidligere indlæg......
/Thomas
Præcis! Nu virker det!
Koden kom til at se sådan ud:
#include
//Timer 0 overflow ISR interrupt [TIM0_OVF] void timer0_ovf_isr(void) { static unsigned int timecount = 0; //global time counter TCNT0 = 0x06; // start med at tælle fra 6; Tæl til 250 if(++timecount == 1000) { PORTA = PORTA ^ 0x80; // Toggle bit 7 på PortA timecount = 0; // Clear for de næste 500 us } }
void main(void) { // Timer 0 interrupt initialisering TIMSK = 0x02; // Afmask Timer 0 overflow interrupt DDRA = 0x80; // Port A bit 7 er output TCCR0 = 0x02; // Sæt Timer0 til clock/8 som clock input // Global aktivering af interrupts #asm("sei") while(1) ; }
Så TIMSK skal være lig 2 :-)
-- Mvh. Tomas
Ja, det er ikke altid til at se skoven for bare træer ;)
/Thomas
Thomas Lykkeberg skrev:
Det må siges :-)
Hvad er det TIMSK gør? TIMer... SK???
-- Mvh. Tomas
"Timer interrupt mask register". Det bruges til at maske de forskellige interrupts associeret med timere/countere i AVR MCU'en
Sig mig en gang, har du ikke et datablad på den AVR du sidder med? :o)
Jeg regner med at det er en ATMega8515:
/Thomas
Thomas Lykkeberg skrev:
Jo jo :-) Men når man masker interrupts, hvad gør man så?
Jeps. 8515 it is ;-)
-- Mvh. Tomas
S=E5 tillader eller forbyder man interrupts fra en specific kilde. I dit tilf=E6lde tillader du interrupts fra "Timer 0 Over Flow" kilden. Kort sagt har du ved at skrive TMISK =3D 0x02 fortalt interrupt kontrolleren i AVR'en, at du gerne vil afbrydes (interrupt'es) n=E5r timer 0's t=E6ller "flyder over".
/Thomas
Thomas Lykkeberg skrev:
OK - Takker. Det hjalp på min forståelse :-) Må dybere ind i databladet og finde mig en liste over det tilladte TMISK'ere...
-- Mvh. Tomas
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.