den duty cycle jedenfals bei der impulsdauer kp im datenblatt steht das die impulsdauer bei 0g beschleunigung 50% des duty cycles beträgt...
Hier einen kleinen prototyp der aber irgendwie nicht funktioniert,
er benutzt die count72kHz funktion von der Asuro Lib d.h. alle 0.0000138s wird durch ein Interrupt count72kHz um eins erhöt. Zum testen hab ich einen Modelbauempfänger an den Int0 Pin angeschlossen:
Code:
#include "asuro.h"
volatile unsigned char status, wert;
extern unsigned char count72kHz;
void StartPwm(void) {
DDRD &= ~(1<<PD2); //Datenrichtungsbit löschen
MCUCR &= ~(1<<ISC01); //Interrupt einstellung von
MCUCR |= (1<<ISC00); //Int0 einstellen auf Steigende und Fallende //Spannung
GICR |= (1<<INT0); //Interrupt von Pin Int0 setzen
}
void StopPwm(void) {
GICR &= ~(1<<INT0); //Interrupt deaktivieren
}
SIGNAL (SIG_INTERRUPT0) {
if (status == 1) { //Wenn Status = 1 counter aktiv
wert = count72kHz;
status = 0;
}
else {
count72kHz = 0;
status = 1;
}
MFG,
Max
Lesezeichen