Den SwitchTest Funktion allein kann nicht in ein Programm verwendet werden. Das muss irgendwie in den Hauptfunktion main (oder weitere Sub-funktionen) angerufen werden. Ich habe das nur damals in meiner Bericht geschrieben um den "sw & 0x_wert" anschaulich zu machen.
Den Init() Funktion initialisiert eine menge von Interne Registern der notwendig sind fur das korrektes funktionieren der IC1 (de Atmega8 chip). Es setzt den anfangs wert und Kommunikation-richtung und Anfangswert von verschiedene pins. Dazu setzt es auch den Timer einstellungen fur den Motor-kontrol und den serielle komunikation und analoge Messungeinrichtung (ADC). Die Funktion muss am Anfang angerufen werden sonnst werden die andere Asuro Funktionen nicht richtig funktionieren.
Dein Program geht schon, aber es tut es nur ein mal. Es macht den PollSwitch Messung nur einmal. Dan testet es mit den If abfrage ob einer Taster bemerkt is (und sendet über den IR stelle wenn das stimmt). Danach geht es in einer unendliche schleife mit while(1); Du bekommst aber keine Zeit einer der Taster ein zu drücken. Es geht zu schnell.
Den folgende code muss besser gehen:
Code:
int main(void)
{
Init();
unsigned char Taster;
While(1) { //wiederhol fur immer
Taster = PollSwitch();
if(Taster > 0 )
{
SerWrite("Hallo du da!",12);
} // Ende von if, irgend eine Taster geprellt.
} // Ende von while(1);
return 0;
} //Ende main
Lesezeichen