'Programmierbeispiel von www.marwedels.de/malte 'Programmierung mittels Bascom AVR 'Programmierung für den Mikrocontroller ATMEL AT90S4433 'Das Programm wartet an der Seriellen Schnittstelle auf eine Eingabe. 'Mit dieser lassen sich die Taster und die A/D Wandler abfragen, sowie die LEDs 'ein und ausschalten 'Die Schaltung benötigt eine Verbindung mittels RS232 zum Pc. Auf dem Pc 'ist eine Termianl Software nötig. Hierfür kan beispielsweise der in Bascom AVR 'intengrierte Terminal-emulator benutzt werden $crystal = 8000000 Config Portd = Input Config Portb = &B00000101 Config Portc = Input Config Adc = Single , Prescaler = Auto Start Adc Dim A As Word Dim B As Word Dim C As Byte Print "advanced-test1.bas" Main: Print Print "0 : LEDs" Print "1 : Taster" Print "2 : AD Ports" Print "3 : Ozi Mode" 'Ozi = Oszilloskop Input "Ihre Wahl: " , A If A = 0 Then Goto Mainled End If If A = 1 Then Goto Maintaster End If If A = 2 Then Goto Mainad End If If A = 3 Then Goto Mainozi End If Print "Falsche Eingabe, erneut eingeben" Goto Main Mainozi: Input "A/D Port Nummer (0-6): " , C Print "Weisse Taste unterbricht" Input "Millisekunden " , A Ozi2: B = Getadc(c) Print B Waitms A If Pind.4 = 1 Then Goto Main End If Goto Ozi2 Maintaster: If Pind.5 = 1 Then 'Taster ist ein Öffnen Print "Roter Taster nicht gedrueckt" Else Print "Roter Taster gedrueckt" End If If Pind.4 = 1 Then 'Taster ist ein Schließer Print "Weisser Taster gedrueckt" Else Print "Weisser Taster nicht gedrueckt" End If Goto Main Mainad: Input "A/D Port Nummer (0-6): " , A If A < 6 Then B = Getadc(a) Print "Port " ; A ; " : " ; B End If If A = 6 Then Print "Alle AD Ports" For C = 0 To 5 B = Getadc(c) Print "Port " ; C ; " : " ; B Next End If If A > 6 Then Print "Falsche Port Nummer" End If Goto Main Mainled: Print "0 : Gruen an" Print "1 : Gruen aus" Print "2 : Rot an" Print "3 : Rot aus" Print "4 : Alle an" Print "5 : Alle aus" Print "6 : Wechseln" Input "Ihre Wahl: " , A If A = 0 Then Set Portb.0 Print "Gruen an" End If If A = 1 Then Reset Portb.0 Print "Gruen aus" End If If A = 2 Then Set Portb.2 Print "Rot an" End If If A = 3 Then Reset Portb.2 Print "Rot aus" End If If A = 4 Then Set Portb.2 Set Portb.0 Print "Alle an" End If If A = 5 Then Reset Portb.2 Reset Portb.0 Print "Alle aus" End If If A = 6 Then Toggle Portb.2 Toggle Portb.0 Print "Gewechselt" End If If A > 6 Then Print "Falsche Eingabe, erneut eingeben" End If Goto Main