M
Marcin1326
Guest
Hej,
Jeg ønskede at gøre sent i programmet for ATmega8.Brugt pausen, men det simuleringsprogram i AVR Studio, fremgår det, at programmet efter omkring 260 mikro-sekunder, nulstilles (vender tilbage til main ()-funktion).Ikke på grund af jet watchdogiem snarere fordi han er handicappet.Er der nogen kan fortælle mig, hvorfor dette sker?Åh, selvfølgelig, er udarbejdet programmet ikke fungerer ordentligt, og den "fysiske" processor.
Program:
Kode:# Include <inttypes.h>
# <stdio.h>
# Include <avr/io.h>
# Include <avr/interrupt.h>//----------------------------------------------uint8_t podtryb;
flygtige uint16_t tid;//-------------------------------------------void opoznienie8ms (uint16_t t);
podlacz_koncowke_pwm void (void) / / opretter forbindelse til de udstationerede spids OC0A PORT
odlacz_koncowke_pwm void (void) / / skar spidsen af OC0A PORT//--------------------------------------------void opoznienie8ms (uint16_t t)
(
time = t;
for (; tid! = 0
(
PORTD | = 1 <<7 / / Efter et par løber en for-løkke er nulstillet (hoppe til main () funktion) !!!!!!!!!!!!!!!!!
PORTD & = ~ (1 <<7);
)
)podlacz_koncowke_pwm void ()
(
TCCR1A | = 1 <<COM1A1;
)odlacz_koncowke_pwm void ()
(
TCCR1A & = ~ (1 <<COM1A1) & ~ (1 <<COM1A0);
)int main (void)
(
/ / Port Configuration
DDRB = 0b00000110;
DDRD = 0b11100000;/ / Indstil PWMa
TCCR1A | = 1 <<WGM10 / / FastPWM 8BIT
TCCR1B | = 1 <<WGM12;TCCR1B | = 1 <<CS11; / / Divide 8
TIMSK | = 1 <<OCIE1A;OCR1A = 120;/ / Configure counter overflow interrupt
TCCR0 | = 1 <<CS02; / / kløft 256
TIMSK | = 1 <<TOIE0 / / låse overflow interruptsei (); / / låse den globale Interrupt//=============== PROGRAM RELEVANTE =====================
for (;
(PORTB & = ~ (1 <<2);
podlacz_koncowke_pwm ();opoznienie8ms (100);odlacz_koncowke_pwm ();
PORTB & = ~ (1 <<1);
PORTB | = 1 <<2;opoznienie8ms (100)
return 0;
)/ / Interrupt forekommende på ca 8,1 ms og det er den pause skaber forsinkelserSIGNAL (SIG_OVERFLOW0)
(
if (tid! = 0) - tid;
)
Jeg ønskede at gøre sent i programmet for ATmega8.Brugt pausen, men det simuleringsprogram i AVR Studio, fremgår det, at programmet efter omkring 260 mikro-sekunder, nulstilles (vender tilbage til main ()-funktion).Ikke på grund af jet watchdogiem snarere fordi han er handicappet.Er der nogen kan fortælle mig, hvorfor dette sker?Åh, selvfølgelig, er udarbejdet programmet ikke fungerer ordentligt, og den "fysiske" processor.
Program:
Kode:# Include <inttypes.h>
# <stdio.h>
# Include <avr/io.h>
# Include <avr/interrupt.h>//----------------------------------------------uint8_t podtryb;
flygtige uint16_t tid;//-------------------------------------------void opoznienie8ms (uint16_t t);
podlacz_koncowke_pwm void (void) / / opretter forbindelse til de udstationerede spids OC0A PORT
odlacz_koncowke_pwm void (void) / / skar spidsen af OC0A PORT//--------------------------------------------void opoznienie8ms (uint16_t t)
(
time = t;
for (; tid! = 0
(
PORTD | = 1 <<7 / / Efter et par løber en for-løkke er nulstillet (hoppe til main () funktion) !!!!!!!!!!!!!!!!!
PORTD & = ~ (1 <<7);
)
)podlacz_koncowke_pwm void ()
(
TCCR1A | = 1 <<COM1A1;
)odlacz_koncowke_pwm void ()
(
TCCR1A & = ~ (1 <<COM1A1) & ~ (1 <<COM1A0);
)int main (void)
(
/ / Port Configuration
DDRB = 0b00000110;
DDRD = 0b11100000;/ / Indstil PWMa
TCCR1A | = 1 <<WGM10 / / FastPWM 8BIT
TCCR1B | = 1 <<WGM12;TCCR1B | = 1 <<CS11; / / Divide 8
TIMSK | = 1 <<OCIE1A;OCR1A = 120;/ / Configure counter overflow interrupt
TCCR0 | = 1 <<CS02; / / kløft 256
TIMSK | = 1 <<TOIE0 / / låse overflow interruptsei (); / / låse den globale Interrupt//=============== PROGRAM RELEVANTE =====================
for (;
(PORTB & = ~ (1 <<2);
podlacz_koncowke_pwm ();opoznienie8ms (100);odlacz_koncowke_pwm ();
PORTB & = ~ (1 <<1);
PORTB | = 1 <<2;opoznienie8ms (100)
return 0;
)/ / Interrupt forekommende på ca 8,1 ms og det er den pause skaber forsinkelserSIGNAL (SIG_OVERFLOW0)
(
if (tid! = 0) - tid;
)