m3Sa
26.06.2007, 19:51
Hallo,
ich habe ein kleines Problem bei meinem Code.
Und zwar arbeitet der Mega8 sehr langsam bei einer Frequenz von 4MHz.
Selbst bei einem Wait von "1" braucht er mehrere Sekunden um fortzufahren. wenn kein Wait eingefügt rennt er wie verrückt.
Der Code stellt Blinkende bzw. laufende LEDs dar.
zugleich könntet ihr mir veraten wie ich zu einer variable +1 rechne ;)
Danke im Voraus
Carsten
$regfile = "m8def.dat"
$crystal = 4000000
Enable Interrupts 'einschalten Der Interrupts
Enable Int0 'einschalten Von Interrupt Int0
Config Int0 = Low Level 'configuriere Int0 Auf Low Level
On Int0 Keypress 'springe zu Keypress
Dim Up As Bit
Dim Count As Byte
Dim Action As Byte
Config Portc = Input
Config Portb = Output
Portb = &B111111111
Do
If Action = 1 Then
If Up = 0 Then
Rotate Portb , Left
Wait 1
End If
If Up = 1 Then
Rotate Portb , Right
Wait 1
End If
If Count = 1 Then
Up = 0
End If
If Count = 0 Then
Up = 1
End If
End If
If Action = 2 Then
Rotate Portb , Left
Wait 1
End If
Loop
Keypress:
If Pinc.0 = 0 Then
Action = 1
Count = 1
Up = 0
Portb = &B1111110
Elseif Pinc.1 = 0 Then
Action = 2
Portb = &B1010101
Elseif Pinc.2 = 0 Then
Action = 3
End If
Return
ich habe ein kleines Problem bei meinem Code.
Und zwar arbeitet der Mega8 sehr langsam bei einer Frequenz von 4MHz.
Selbst bei einem Wait von "1" braucht er mehrere Sekunden um fortzufahren. wenn kein Wait eingefügt rennt er wie verrückt.
Der Code stellt Blinkende bzw. laufende LEDs dar.
zugleich könntet ihr mir veraten wie ich zu einer variable +1 rechne ;)
Danke im Voraus
Carsten
$regfile = "m8def.dat"
$crystal = 4000000
Enable Interrupts 'einschalten Der Interrupts
Enable Int0 'einschalten Von Interrupt Int0
Config Int0 = Low Level 'configuriere Int0 Auf Low Level
On Int0 Keypress 'springe zu Keypress
Dim Up As Bit
Dim Count As Byte
Dim Action As Byte
Config Portc = Input
Config Portb = Output
Portb = &B111111111
Do
If Action = 1 Then
If Up = 0 Then
Rotate Portb , Left
Wait 1
End If
If Up = 1 Then
Rotate Portb , Right
Wait 1
End If
If Count = 1 Then
Up = 0
End If
If Count = 0 Then
Up = 1
End If
End If
If Action = 2 Then
Rotate Portb , Left
Wait 1
End If
Loop
Keypress:
If Pinc.0 = 0 Then
Action = 1
Count = 1
Up = 0
Portb = &B1111110
Elseif Pinc.1 = 0 Then
Action = 2
Portb = &B1010101
Elseif Pinc.2 = 0 Then
Action = 3
End If
Return