Alternative zum Schaltblitz
Verfasst: 29 Jun 2009 7:32
Ich führe den Thread hier mal weiter, da er unter "Videothek" nicht so ganz reinpasst.
Ausgangspunkt ist folgender Thread gewesen:
http://www.zxr750.de/board/vie ... hp?t=44846
Tja..soviel zu meinem Winterprojekt...
Hab übers Wochenende das Programm fertig geschrieben und als Option auch gleich noch ein LCD mit 16*2 Ziffern integriert.
Wer Basic kann, kann hier ja gerne mal reinsehen:
$regfile = "m8def.dat"
$crystal = 8000000
$baud = 19200
$hwstack = 32
$swstack = 10
$framesize = 40
$sim
Config Portd = Output 'Pin 0 Port C ist Neutralschalter
Config Pinc.6 = Input 'Pin 1 Port C ist Fernlicht
Config Pinc.5 = Input
Config Adc = Single , Prescaler = Auto
Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5 , E = Portb.1 , Rs = Portb.0
Config Lcdbus = 4
Config Lcd = 16 * 2
Start Adc
'System steuert Farbe der Cockpitbeleuchtung
Dim System As Byte '= Pin ADC0 Drehzahl wird im LCD angezeigt und fließt in Temp.Mod
Dim Drehzahl As Word '= Neutralschalter vom Getriebe
Dim Neutral As Bit '=Fernlichtschalter
Dim Beam As Bit '= Pin ADC1 Temp wird im LCD angezeigt und fließt in Temp.Mod.
Dim Temp As Word 'Temp.mod. ist der Modifikator für Drehzahl/Temperatur
Dim Tempmode As Word
Cls
Locate 1 , 1 : Lcd "Welcome to"
Locate 2 , 1 : Lcd "Kawasaki ZXR 750"
Wait 1
Cls
Do
Neutral = Pinc.6
Beam = Pinc.5
Drehzahl = Getadc(0)
Temp = Getadc(1)
Tempmode = 0
System = 0
Select Case Drehzahl
Case 0 To 600 : Tempmode = Tempmode + 0
Case 601 To 799 : Tempmode = Tempmode + 30
Case 800 To 899 : Tempmode = Tempmode + 40
Case 900 To 999 : Tempmode = Tempmode + 60
Case 1000 To 1099 : Tempmode = Tempmode + 80
Case Else : Tempmode = Tempmode + 100
End Select
Select Case Temp
Case 0 To 20 : Tempmode = Tempmode + 70
Case 21 To 40 : Tempmode = Tempmode + 60
Case 41 To 60 : Tempmode = Tempmode + 50
Case 61 To 80 : Tempmode = Tempmode + 0
Case 81 To 100 : Tempmode = Tempmode + 20
Case 101 To 110 : Tempmode = Tempmode + 50
Case 111 To 120 : Tempmode = Tempmode + 60
Case Else : Tempmode = Tempmode + 100
End Select
If Tempmode => 100 Then System = System + 10
If Neutral = 1 Then System = System + 1 'Systemzähler S Erhöhen , Wenn Neutral Eingelegt
If Beam = 1 Then System = System + 2 'Systemzähler erhöhen, wenn Fernlicht eingeschaltet
Select Case System
Case 1 : Portd = &B00000001 'Änderung Tachobeleuchtung auf Grün
Case 2 : Portd = &B00000010 'Änderung Tachobeleuchtung auf Blau
Case 3 : Portd = &B00000010 'Änderung Tachobeleuchtung auf Rot
Case 4 To 16 : Portd = &B00000100 'Änderung Tachobeleuchtung auf Gelb
Case Else : Portd = &B00000111
End Select
Locate 1 , 1 : Lcd "Drehzahl:"
Locate 1 , 10 : Lcd Drehzahl 'Ausgabe LCD Drehzahl
Locate 2 , 1 : Lcd "Temperatur:"
Locate 2 , 12 : Lcd Temp
Waitms 500
Cls
Locate 1 , 1 : Lcd "Neutral"
Locate 2 , 1 : Lcd Neutral 'Ausgabe LCD Neutral
Locate 1 , 9 : Lcd "Beam "
Locate 2 , 9 : Lcd Beam 'Ausgabe LCD Fernlicht
Cls
Loop
End
Das Drehzahlsignal sowie der Temperatursensor müssen noch angepasst werden. Das geht aber erst, wenn die Teile da sind. Das Signal vom Drehzahlmesser wird evtl. vorher über einen LM207 gejagt, je nachdem wie gut das mit dem AD-Wandler vom Atmega8 funktioniert.
Heute kommen die Schaltungsteile, die ich dann verlöten und auch mal außerhalb des Simulators betreiben kann. Die wird wohl bis Ende dieser Woche fertig sein.
Kann jemand ein paar Foto´s vom ausgebauten Tacho machen? (Frontansicht/Rückansicht). Und hat jemand eine Bezugsquelle für günstige weiße Tachoscheiben??
Gruß
Markus
Ausgangspunkt ist folgender Thread gewesen:
http://www.zxr750.de/board/vie ... hp?t=44846
Tja..soviel zu meinem Winterprojekt...
Hab übers Wochenende das Programm fertig geschrieben und als Option auch gleich noch ein LCD mit 16*2 Ziffern integriert.
Wer Basic kann, kann hier ja gerne mal reinsehen:
$regfile = "m8def.dat"
$crystal = 8000000
$baud = 19200
$hwstack = 32
$swstack = 10
$framesize = 40
$sim
Config Portd = Output 'Pin 0 Port C ist Neutralschalter
Config Pinc.6 = Input 'Pin 1 Port C ist Fernlicht
Config Pinc.5 = Input
Config Adc = Single , Prescaler = Auto
Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5 , E = Portb.1 , Rs = Portb.0
Config Lcdbus = 4
Config Lcd = 16 * 2
Start Adc
'System steuert Farbe der Cockpitbeleuchtung
Dim System As Byte '= Pin ADC0 Drehzahl wird im LCD angezeigt und fließt in Temp.Mod
Dim Drehzahl As Word '= Neutralschalter vom Getriebe
Dim Neutral As Bit '=Fernlichtschalter
Dim Beam As Bit '= Pin ADC1 Temp wird im LCD angezeigt und fließt in Temp.Mod.
Dim Temp As Word 'Temp.mod. ist der Modifikator für Drehzahl/Temperatur
Dim Tempmode As Word
Cls
Locate 1 , 1 : Lcd "Welcome to"
Locate 2 , 1 : Lcd "Kawasaki ZXR 750"
Wait 1
Cls
Do
Neutral = Pinc.6
Beam = Pinc.5
Drehzahl = Getadc(0)
Temp = Getadc(1)
Tempmode = 0
System = 0
Select Case Drehzahl
Case 0 To 600 : Tempmode = Tempmode + 0
Case 601 To 799 : Tempmode = Tempmode + 30
Case 800 To 899 : Tempmode = Tempmode + 40
Case 900 To 999 : Tempmode = Tempmode + 60
Case 1000 To 1099 : Tempmode = Tempmode + 80
Case Else : Tempmode = Tempmode + 100
End Select
Select Case Temp
Case 0 To 20 : Tempmode = Tempmode + 70
Case 21 To 40 : Tempmode = Tempmode + 60
Case 41 To 60 : Tempmode = Tempmode + 50
Case 61 To 80 : Tempmode = Tempmode + 0
Case 81 To 100 : Tempmode = Tempmode + 20
Case 101 To 110 : Tempmode = Tempmode + 50
Case 111 To 120 : Tempmode = Tempmode + 60
Case Else : Tempmode = Tempmode + 100
End Select
If Tempmode => 100 Then System = System + 10
If Neutral = 1 Then System = System + 1 'Systemzähler S Erhöhen , Wenn Neutral Eingelegt
If Beam = 1 Then System = System + 2 'Systemzähler erhöhen, wenn Fernlicht eingeschaltet
Select Case System
Case 1 : Portd = &B00000001 'Änderung Tachobeleuchtung auf Grün
Case 2 : Portd = &B00000010 'Änderung Tachobeleuchtung auf Blau
Case 3 : Portd = &B00000010 'Änderung Tachobeleuchtung auf Rot
Case 4 To 16 : Portd = &B00000100 'Änderung Tachobeleuchtung auf Gelb
Case Else : Portd = &B00000111
End Select
Locate 1 , 1 : Lcd "Drehzahl:"
Locate 1 , 10 : Lcd Drehzahl 'Ausgabe LCD Drehzahl
Locate 2 , 1 : Lcd "Temperatur:"
Locate 2 , 12 : Lcd Temp
Waitms 500
Cls
Locate 1 , 1 : Lcd "Neutral"
Locate 2 , 1 : Lcd Neutral 'Ausgabe LCD Neutral
Locate 1 , 9 : Lcd "Beam "
Locate 2 , 9 : Lcd Beam 'Ausgabe LCD Fernlicht
Cls
Loop
End
Das Drehzahlsignal sowie der Temperatursensor müssen noch angepasst werden. Das geht aber erst, wenn die Teile da sind. Das Signal vom Drehzahlmesser wird evtl. vorher über einen LM207 gejagt, je nachdem wie gut das mit dem AD-Wandler vom Atmega8 funktioniert.
Heute kommen die Schaltungsteile, die ich dann verlöten und auch mal außerhalb des Simulators betreiben kann. Die wird wohl bis Ende dieser Woche fertig sein.
Kann jemand ein paar Foto´s vom ausgebauten Tacho machen? (Frontansicht/Rückansicht). Und hat jemand eine Bezugsquelle für günstige weiße Tachoscheiben??
Gruß
Markus