namd
ich glaub das ja nun nicht waalso wie gut das ich noch am lernen bin sonst wärs bestimmt peinlich oder so
![]()
ich hab nun schon hier im forum durch hilfe herraufinden können was toggle ist
dann auch noch wie man mit toggle nen prog starten kann, soweit so gut
aber ich hatte dummerweise meine lauflichter mit nem wait befehl geprogt, nun da der controller ja nun in der waitperioden nichts tut, nahm er auch keine befehle zum abschalten mehr entgegen, einschalten ging wunderbar.
also hab ich das ganze mit nem timer versucht, es sind allerdings 3 lauflicht progs in einem... naja seht selbst, evt kann mir ja jemand helfen, aber seit gnädig ich bin noch anfänger und hab nicht ein Buch hier
ich muss noch sagen das ich ne kleine 10er tastatur zur auswahl dran hab, selber gebaut versteht sichCode:$regfile = "m8def.dat" Config Timer1 = Timer , Prescale = 1 Ddrb = &B00001111 Config Portc = Output Config Portd = Output Portb = &B00001111 Dim C As Byte C = &B11001100 Dim B As Byte B = &B11111000 Dim A As Byte A = &B11000000 Dim Licht As Byte Dim Lauflicht1 As Bit Dim Lauflicht2 As Bit Dim Lauflicht3 As Bit Portd = &B00000000 On Timer1 Timer_irq Const Timervorgabe = 64536 Enable Timer1 Enable Interrupts Do If Pinb.0 = 0 And Pinb.1 = 1 And Pinb.2 = 1 And Pinb.3 = 1 Then Waitms 80 If Pinb.0 = 0 And Pinb.1 = 1 And Pinb.2 = 1 And Pinb.3 = 1 Then Toggle Portc.1 End If If Pinb.0 = 1 And Pinb.1 = 0 And Pinb.2 = 1 And Pinb.3 = 1 Then Waitms 80 If Pinb.0 = 1 And Pinb.1 = 0 And Pinb.2 = 1 And Pinb.3 = 1 Then Toggle Portc.2 End If If Pinb.0 = 1 And Pinb.1 = 1 And Pinb.2 = 0 And Pinb.3 = 1 Then Waitms 80 If Pinb.0 = 1 And Pinb.1 = 1 And Pinb.2 = 0 And Pinb.3 = 1 Then Toggle Portc.3 End If If Pinb.0 = 1 And Pinb.1 = 1 And Pinb.2 = 1 And Pinb.3 = 0 Then Waitms 80 If Pinb.0 = 1 And Pinb.1 = 1 And Pinb.2 = 1 And Pinb.3 = 0 Then Toggle Portc.4 End If If Pinb.0 = 1 And Pinb.1 = 0 And Pinb.2 = 0 And Pinb.3 = 1 Then Waitms 80 If Pinb.0 = 1 And Pinb.1 = 0 And Pinb.2 = 0 And Pinb.3 = 1 Then Toggle Portc.5 End If If Pinb.0 = 0 And Pinb.1 = 1 And Pinb.2 = 0 And Pinb.3 = 1 Then Portc = &B00000000 End If If Pinb.0 = 0 And Pinb.1 = 0 And Pinb.2 = 1 And Pinb.3 = 0 Then Waitms 80 If Pinb.0 = 0 And Pinb.1 = 0 And Pinb.2 = 1 And Pinb.3 = 0 Then Toggle Lauflicht1 End If If Lauflicht1 = 1 Then Portd = A If Licht = 149 Or Licht = 74 Then Rotate A , Left , 1 End If If Pinb.0 = 0 And Pinb.1 = 1 And Pinb.2 = 1 And Pinb.3 = 0 Then Waitms 80 If Pinb.0 = 0 And Pinb.1 = 1 And Pinb.2 = 1 And Pinb.3 = 0 Then Toggle Lauflicht2 End If If Lauflicht2 = 1 Then Portd = B If Licht = 148 Or Licht = 73 Then Rotate B , Right , 1 End If If Pinb.0 = 1 And Pinb.1 = 1 And Pinb.2 = 0 And Pinb.3 = 0 Then Waitms 80 If Pinb.0 = 1 And Pinb.1 = 1 And Pinb.2 = 0 And Pinb.3 = 0 Then Toggle Lauflicht3 End If If Lauflicht3 = 1 Then Portd = C If Licht = 147 Or Licht = 72 Then Rotate C , Left , 1 End If If Pinb.0 = 0 And Pinb.1 = 0 And Pinb.2 = 1 And Pinb.3 = 1 Then Portd = &B11111111 Waitms 10 Portd = &B00000000 Waitms 50 Return Elseif Pinb.0 = 1 And Pinb.1 = 1 And Pinb.2 = 1 And Pinb.3 = 1 Then Portd = &B00000000 End If Loop End Timer_irq: Timer1 = Timervorgabe Incr Licht If Licht = 150 Then Licht = 1 End If Return
somit spart man ports und um genau zu sein 6wie ihr im programm seht braucht man dann nur noch 4 ports, man könnte dann theoretisch 15 taster an 4 ports anschließen
gruss, bigeggmc







Zitieren
Lesezeichen