Soweit ich weiss, liefert "OdometriData" werte in "Data" von 1-1023
dein Progamm schaltet aber nur, wenn es ausgerechnet == 1 ist.
das ist der codeCode:#include "asuro.h" int main(void) { unsigned int data [2]; Init(); StatusLED(1); while(1){ OdometrieData(data); if (data [0] == 1) {BackLED(ON,ON);} else {BackLED(OFF,OFF);} } return 0; }
nun ist ja nicht schwer zu erkennen, was er machen sollte:
wenn data 0 dem wert 1 entspricht sollten die back leds leuchten
joa
hilfe wäre super
gruß ich
Soweit ich weiss, liefert "OdometriData" werte in "Data" von 1-1023
dein Progamm schaltet aber nur, wenn es ausgerechnet == 1 ist.
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Hallo
BackLEDs und Odometrie sollte man nicht zusammen verwenden, weil sie sich den Pin PD7 teilen. Zwar wird von BackLEDs() und OdometrieData() jeweils der Pegel richtig eingestellt (Odo=high, BackLEDs=low), aber die Odo-LEDs brauchen etwas Zeit bis sie die volle Leuchtstärke erreichen. Das könnte die Abfrage der Odo-Sensoren beinflussen.
Bei näherer Betrachtung scheint mir hier sogar noch ein kleiner Bug zu sein: BackLEDs(ON,ON) schaltet den PD7 auf low und PC0/1 auf Ausgang und high:
und OdometrieData() schaltet den PD7 auch wieder auf high (ODOMETRIE_LED_ON) und die Pins PC0/1 auch wieder auf Eingang für den ADC, "vergisst" aber die Pullups wieder auszuschalten!Code:PORTD &= ~(1 << PD7); // Wheel LED OFF DDRC |= (1 << PC0) | (1 << PC1); // Output => no odometrie PORTC |= (1 << PC0) | (1 << PC1);
Das bedeutet, vor OdometrieData() muss man BackLEDs(OFF,OFF) aufrufen um die Pins von Hand auf low zu schalten. Sonst sind die PullUps parallel zu R18/R20 geschaltet und könnten zusätzlich das Ergebniss von OdometrieData() verfälschen. (Das funktioniert im Programm oben automatisch, weil immer der else-Zeig ausgeführt wird;)Code:DDRC &= ~((1 << PC0) | (1 << PC1)); // Input => no break LED ODOMETRIE_LED_ON;
Das die Abfrage data[0]==1 nicht funktioniert sollte inzwischen klar sein. Der Wert in data[] hängt von der gemessenen Helligkeit am Odosensor ab.
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Lesezeichen