Obstler92
27.11.2012, 17:36
Hallo Forum...
Ich muss für ein Projekt einen Microcontroller programmieren. Ich habe leider nicht wirklich viel Ahnung vom Programmieren.
Als Bauteile habe ich einen Atmega8515, LCD, Tsic 206
im folgenden befindet sich mein bisher programmierter Quellcode. Jedoch zeigt mir das Display nicht den erwünschten wert :(.... Weiß weiß einfach nicht weiter..
Darum bitte ich euch um Hilfe.
Quellcode
$regfile "m8515.dat"
$crystal = 8000000
'_________________________________________________ ______________________________
Config Pind.2 = Input
Sensor Alias Pind.2
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Porta.7 , Db5 = Porta.6 , Db6 = Porta.5 , Db7 = Porta.4 , E = Porta.3 , Rs = Porta.2
Cursor Off
'_________________________________________________ ______________________________
Waitms 150
Config Pind.1 = Output
Portd.1 = 1
'_________________________________________________ ______________________________
Config Int0 = Falling
On Int0 Interrupt
Enable Int0
Enable Interrupts
'_________________________________________________ ______________________________
Dim Temperatur As Single
Dim Bitzaehler As Byte
Dim Strobe As Word
Dim Strobe_speicher As Word
Dim Bitnummer As Byte
Dim Fertig As Bit
Dim Sensorwert As Word
Sensorwert = 0
'_________________________________________________ ______________________________
Do
If Fertig = 1 Then
Reset Fertig
Locate 1 , 10
Lcd Fusing(temperatur , "#.#") ; Chr(223) ; "C"
Waitms 200
End If
Loop
End
'_________________________________________________ ______________________________
Interrupt:
Strobe = 0
Incr Bitzaehler
Select Case Bitzaehler
Case 1:
Do : Incr Strobe : Loop Until Sensor = 1
Strobe_speicher = Strobe
Case 2 To 6:
Do : Incr Strobe : Loop Until Strobe = Strobe_speicher
If Sensor = 1 Then Sensorwert = Sensorwert + 0
Case 7:
Do : Incr Strobe : Loop Until Strobe = Strobe_speicher
If Sensor = 1 Then Sensorwert = Sensorwert + 1024
Case 8:
Do : Incr Strobe : Loop Until Strobe = Strobe_speicher
If Sensor = 1 Then Sensorwert = Sensorwert + 512
Case 9:
Do : Incr Strobe : Loop Until Strobe = Strobe_speicher
If Sensor = 1 Then Sensorwert = Sensorwert + 256
Case 10 To 12:
Do : Incr Strobe : Loop Until Strobe = Strobe_speicher
If Sensor = 1 Then Sensorwert = Sensorwert + 0
Case 13:
Do : Incr Strobe : Loop Until Strobe = Strobe_speicher
If Sensor = 1 Then Sensorwert = Sensorwert + 128
Case 14:
Do : Incr Strobe : Loop Until Strobe = Strobe_speicher
If Sensor = 1 Then Sensorwert = Sensorwert + 64
Case 15:
Do : Incr Strobe : Loop Until Strobe = Strobe_speicher
If Sensor = 1 Then Sensorwert = Sensorwert + 32
Case 16:
Do : Incr Strobe : Loop Until Strobe = Strobe_speicher
If Sensor = 1 Then Sensorwert = Sensorwert + 16
Case 17:
Do : Incr Strobe : Loop Until Strobe = Strobe_speicher
If Sensor = 1 Then Sensorwert = Sensorwert + 8
Case 18:
Do : Incr Strobe : Loop Until Strobe = Strobe_speicher
If Sensor = 1 Then Sensorwert = Sensorwert + 4
Case 19:
Do : Incr Strobe : Loop Until Strobe = Strobe_speicher
If Sensor = 1 Then Sensorwert = Sensorwert + 2
Case 20:
Do : Incr Strobe : Loop Until Strobe = Strobe_speicher
If Sensor = 1 Then Sensorwert = Sensorwert + 1
Case 21:
Temperatur = 0.0977 * Sensorwert
Temperatur = Temperatur - 50
Sensorwert = 0
Bitzaehler = 0
Strobe_speicher = 0
Set Fertig
End Select
Return
Ich muss für ein Projekt einen Microcontroller programmieren. Ich habe leider nicht wirklich viel Ahnung vom Programmieren.
Als Bauteile habe ich einen Atmega8515, LCD, Tsic 206
im folgenden befindet sich mein bisher programmierter Quellcode. Jedoch zeigt mir das Display nicht den erwünschten wert :(.... Weiß weiß einfach nicht weiter..
Darum bitte ich euch um Hilfe.
Quellcode
$regfile "m8515.dat"
$crystal = 8000000
'_________________________________________________ ______________________________
Config Pind.2 = Input
Sensor Alias Pind.2
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Porta.7 , Db5 = Porta.6 , Db6 = Porta.5 , Db7 = Porta.4 , E = Porta.3 , Rs = Porta.2
Cursor Off
'_________________________________________________ ______________________________
Waitms 150
Config Pind.1 = Output
Portd.1 = 1
'_________________________________________________ ______________________________
Config Int0 = Falling
On Int0 Interrupt
Enable Int0
Enable Interrupts
'_________________________________________________ ______________________________
Dim Temperatur As Single
Dim Bitzaehler As Byte
Dim Strobe As Word
Dim Strobe_speicher As Word
Dim Bitnummer As Byte
Dim Fertig As Bit
Dim Sensorwert As Word
Sensorwert = 0
'_________________________________________________ ______________________________
Do
If Fertig = 1 Then
Reset Fertig
Locate 1 , 10
Lcd Fusing(temperatur , "#.#") ; Chr(223) ; "C"
Waitms 200
End If
Loop
End
'_________________________________________________ ______________________________
Interrupt:
Strobe = 0
Incr Bitzaehler
Select Case Bitzaehler
Case 1:
Do : Incr Strobe : Loop Until Sensor = 1
Strobe_speicher = Strobe
Case 2 To 6:
Do : Incr Strobe : Loop Until Strobe = Strobe_speicher
If Sensor = 1 Then Sensorwert = Sensorwert + 0
Case 7:
Do : Incr Strobe : Loop Until Strobe = Strobe_speicher
If Sensor = 1 Then Sensorwert = Sensorwert + 1024
Case 8:
Do : Incr Strobe : Loop Until Strobe = Strobe_speicher
If Sensor = 1 Then Sensorwert = Sensorwert + 512
Case 9:
Do : Incr Strobe : Loop Until Strobe = Strobe_speicher
If Sensor = 1 Then Sensorwert = Sensorwert + 256
Case 10 To 12:
Do : Incr Strobe : Loop Until Strobe = Strobe_speicher
If Sensor = 1 Then Sensorwert = Sensorwert + 0
Case 13:
Do : Incr Strobe : Loop Until Strobe = Strobe_speicher
If Sensor = 1 Then Sensorwert = Sensorwert + 128
Case 14:
Do : Incr Strobe : Loop Until Strobe = Strobe_speicher
If Sensor = 1 Then Sensorwert = Sensorwert + 64
Case 15:
Do : Incr Strobe : Loop Until Strobe = Strobe_speicher
If Sensor = 1 Then Sensorwert = Sensorwert + 32
Case 16:
Do : Incr Strobe : Loop Until Strobe = Strobe_speicher
If Sensor = 1 Then Sensorwert = Sensorwert + 16
Case 17:
Do : Incr Strobe : Loop Until Strobe = Strobe_speicher
If Sensor = 1 Then Sensorwert = Sensorwert + 8
Case 18:
Do : Incr Strobe : Loop Until Strobe = Strobe_speicher
If Sensor = 1 Then Sensorwert = Sensorwert + 4
Case 19:
Do : Incr Strobe : Loop Until Strobe = Strobe_speicher
If Sensor = 1 Then Sensorwert = Sensorwert + 2
Case 20:
Do : Incr Strobe : Loop Until Strobe = Strobe_speicher
If Sensor = 1 Then Sensorwert = Sensorwert + 1
Case 21:
Temperatur = 0.0977 * Sensorwert
Temperatur = Temperatur - 50
Sensorwert = 0
Bitzaehler = 0
Strobe_speicher = 0
Set Fertig
End Select
Return