PWM dekodning

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.

 
hej,
Hvorfor ikke besvaret?
Jeg er også interesseret i dette spørgsmål,
hvordan man beregner de impulsvarighed?

Jeg bruger ATmega8 Microcontroller, forsøger at gøre robot controller for radioen kontrol.fra receiveren dekoder er impulser af 1 ms til 2 ms.betyde midten 1,5 ms.
Jeg har brug for at tælle de impulser, som vil generere et PWM signal til robotten motorer.
For eksempel, hvis de pulser
1 ms - fuld tilbage
1,5 ms - Stop
2ms - fuld fremad

hvordan dette skal gøres ved hjælp CodeVisionAVR?

 

Welcome to EDABoard.com

Sponsor

Back
Top