Hallo zusammen
Ich habe erst kürzlich angefangen in die Bascom Programierung für die Atmel Prozesoren einzusteigen.
Ich habe einen ATMega32, schreibe die Programme in Bascom und nutze Ponyprog2000 als Prommer-Tool.
Einfache digitale E/A Programme klappen soweit ganz gut.
Jetzt habe ich mich an die analogen Eingänge gewagt.
Ich habe einen Spannungsteiler mit 10k Poti an Pin PA0 angeschlossen und habe über den Befehl x=GETADC(0) auch schon Werte einlsesen können. Über Vergleiche von Constanten mit dem gelesenen Analogwert habe ich dann an Port C verschiedene LEDs angesprochen.Soweit so gut...
Jetzt wollte ich aber in disesm Programm auch digitale Eingänge nutzen.
Da Port D noch komplett frei ist wollte ich Pin PD7 nutzen um an PC7 eine LED anzusprechen. Aber der Pin PD7 reagiert nicht als Eingang.
Ich habe auch schon diverse andere Pins von Port D und B probiert....keiner geht.
Ohne den ADC gehen sie aber....könnt ihr mir weiterhelfen?
hier noch mein Code:
Ich hoffe ich habe meinen ersten Beitrag ordentlich verfasst und ihr könnt mir weiterhelfen.Code:$regfile = "m32def.dat" ' we use the M32 $crystal = 8000000 Config Adc = Single , Prescaler = Auto , Reference = Internal 'Ausgangs/Eingangsport deklarieren Config Portc = Output Config PortD = Input 'Ausgangs/Eingangsport auf Pull-UP Portc = 255 Portd = 255 'Now give power to the chip Start Adc 'Variablendeklaration Dim W As Word 'Programmschleife Do ' Analogwert vom Channel PA0 einlesen W = Getadc(0) 'Auswertung wie hoch der Pegel ist und anschließenden 'Aktivierung der dementsprechenen LEDs If W > 100 Then Portc.0 = 0 Else Portc.0 = 1 End If If W > 200 Then Portc.1 = 0 Else Portc.1 = 1 End If If W > 300 Then Portc.2 = 0 Else Portc.2 = 1 End If If W > 400 Then Portc.3 = 0 Else Portc.3 = 1 End If If W > 500 Then Portc.4 = 0 Else Portc.4 = 1 End If If W > 600 Then Portc.5 = 0 Else Portc.5 = 1 End If If W > 700 Then Portc.6 = 0 Else Portc.6 = 1 End If If portd.7 = 0 Then Portc.7 = 0 Else Portc.7 = 1 End If Loop End
Gruß Manuel







Zitieren

Lesezeichen