K
k1_zav
Guest
Hej der.
Jeg har en ADXL202 og ønsker at afkode dens PWM output.
Jeg bruger en ATmega8 og en LCD-skærm til visning af data.
Så jeg har et problem, og jeg kan ikke ordne det.Sin produktion er 1,44 og ændrer ikke når ADXL rotere eller ryste eller ...
Jeg dont kende hvor er problemet.
Af den måde jeg bruger Codevision AVR compiler.
Dette er min interrupt service rutine (jeg bruge ekstern afbryder 1 og input capture):
"# ASM (" cli ");
timer = TCNT1;
counter ;
/ / MCUCR = 0x0C: afbryder på stigende kant
/ / MCUCR = 0x08: afbryder på henhoerende kantif (MCUCR == 0x0C)
(
/ / De afbryder var for stigende kant
/ / Det næste interrupt vil være på henhoerende kant
MCUCR = 0x08;
periode = timer - counter_start;
counter_start = timer;
duty_cycle = pulse_width / periode;
)
anden
(
/ / De afbryder var for henhoerende kant
/ / Det næste interrupt vil være på stigende kant
MCUCR = 0x0C;
counter_stop = timer;
pulse_width = counter_stop - counter_start;
);
GIFR | = 0x80;
# ASM ( "sei") "Så efter at jeg bruger timer0 overflow interrupt til refresah LCD.
Please help me.
Tak.
Jeg har en ADXL202 og ønsker at afkode dens PWM output.
Jeg bruger en ATmega8 og en LCD-skærm til visning af data.
Så jeg har et problem, og jeg kan ikke ordne det.Sin produktion er 1,44 og ændrer ikke når ADXL rotere eller ryste eller ...
Jeg dont kende hvor er problemet.
Af den måde jeg bruger Codevision AVR compiler.
Dette er min interrupt service rutine (jeg bruge ekstern afbryder 1 og input capture):
"# ASM (" cli ");
timer = TCNT1;
counter ;
/ / MCUCR = 0x0C: afbryder på stigende kant
/ / MCUCR = 0x08: afbryder på henhoerende kantif (MCUCR == 0x0C)
(
/ / De afbryder var for stigende kant
/ / Det næste interrupt vil være på henhoerende kant
MCUCR = 0x08;
periode = timer - counter_start;
counter_start = timer;
duty_cycle = pulse_width / periode;
)
anden
(
/ / De afbryder var for henhoerende kant
/ / Det næste interrupt vil være på stigende kant
MCUCR = 0x0C;
counter_stop = timer;
pulse_width = counter_stop - counter_start;
);
GIFR | = 0x80;
# ASM ( "sei") "Så efter at jeg bruger timer0 overflow interrupt til refresah LCD.
Please help me.
Tak.