So besser? Wenn ich die Variablen mit <pre>#define</pre> Deklariere, funktioniert alles wunderbar. Wenn ich es hingegegen mit <pre>uint8_t</pre> mache Funktioniert es nicht. Genauso: Schreibe ich statt <pre> if((run_rwd)&&(auswahl=='f')) auswahl='r';</pre> dieses <pre> if((run_rwd==1)&&(auswahl=='f')) auswahl='r';</pre> Funktioniert das Rückwärts Shiften auch nicht. Er ändert die Variable dann nicht. Bei <pre>run_fwd</pre> ist es egal wie ichs mach ^^ Irgendwie ... weis nich.Code:#include <avr/io.h> #include <stdint.h> #include <util/delay.h> #define run_fwd (PINA&(1<<PA0)) // Start/Stop #define run_rwd (PINA&(1<<PA1)) // Vorwärts/Rückwärts #define DDR_LED DDRB // PORTB (LED) #define DDR_INP DDRA // PORTA (Taster) #define p_INP PORTA // PORTA für Taster void fwd(){ // Vorwärts PORTB<<=1; if(!PORTB) PORTB=1; } void rwd(){ // Rückwärts PORTB>>=1; if(!PORTB) PORTB=128; } int main (void) { DDR_LED = 0xff; // Ausgänge EIN für LED DDR_INP = 0x00; // Eingänge EIN für Taster p_INP = 0xFF; // PullUp EIN char auswahl='s'; // Default while(1) { // MAINSCHLEIFE if((run_rwd)&&(auswahl=='f')) auswahl='r'; // Run RWD, war FWD else if((run_rwd)&&(auswahl=='r')) auswahl='f'; // Run FWD, war RWD else if((run_fwd==1)&&(auswahl=='f')) auswahl='x'; // Stop FWD, war FWD else if((run_fwd==1)&&(auswahl=='r')) auswahl='y'; // Stop RWD, war RWD switch(auswahl){ case 'f': // VORWÄRTS FWD fwd(); break; case 'r' : // RÜCKWÄRTS RWD rwd(); break; case 'x' : // STOP FWD, setze danach FWD (war FWD) loop_until_bit_is_set(PINA, PA0); auswahl='f'; break; case 'y' : // STOP RWD, setzte danach RWD (war RWD) loop_until_bit_is_set(PINA, PA0); auswahl='r'; break; case 's' : // Default Stop, Start drücken zum Starten loop_until_bit_is_set(PINA, PA0); auswahl='f'; break; } } // MAINSCHLEIFEN ENDE return 0; }
Das AVR Studio bietet dort ein kleines Kuriosum. Genauso wie <pre>_delay_ms(>10)</pre> nicht Funktioniert. Er Springt dann in der delay.h rum, macht aber nichts. Ergo kann ich auch keine debounce Funktion einbauen, bzw den "vorgekauten" Code benutzen.
Ich hoffe auf Lösung und verbleibe mit Freundlichen Grüßen![]()







Zitieren

Lesezeichen