Thomas$
24.05.2009, 20:17
Hallo
ich hab folgendes Problem: ich hab angefangen eine 3koordinaten Fräßen mit Lego zu bauen. die mechanik lässt mir nur noch malen zu. zwei probleme taten sich auf die motoren zu positioniern um nicht zu schwingen.(das geht noch einigermaßen und funktioniert unter last auch) und mein Hauot problem ist nun das ich die daten nicht richtig zum µC senden kann das will nicht klappen. ich arbeite mit lpt1 und als µC einen atmega16.
Vb code
Private Sub Timer2_Timer()
Out (&HBE), 0
byte1 = byte1 + 1
'Out (&H3BE), byte1 - 1
If byte1 = 1 Then Out (&H3BC), erstebytex: Out (&HBE), byte1 - 1 ': Out (&HBE), byte1 + 8
If byte1 = 2 Then Out (&H3BC), letztebytex: Out (&HBE), byte1 - 1 ': Out (&HBE), byte1 + 8
If byte1 = 3 Then Out (&H3BC), erstebytey: Out (&HBE), byte1 - 1 ': Out (&HBE), byte1 + 8
If byte1 = 4 Then Out (&H3BC), letztebytey: Out (&HBE), byte1 - 1 ': Out (&HBE), byte1 + 8
'If byte1 = 5 Then Out (&H3BC), erstebytez: Out (&HBE), byte1 - 1 ': Out (&HBE), byte1 + 8
'If byte1 = 6 Then Out (&H3BC), letztebytez: Out (&HBE), byte1 - 1 ': Out (&HBE), byte1 + 8
'If byte1 = 7 Then Out (&H3BC), erstebytew: Out (&HBE), byte1 - 1 ': Out (&HBE), byte1 + 8
'If byte1 = 8 Then Out (&H3BC), letztebytew: Out (&HBE), byte1 - 1 ': Out (&HBE), byte1 + 8
'If byte1 = 9 Then byte1 = 0: Out (&HBE), 8: Timer2.Enabled = False
If byte1 = 9 Then Timer2.Enabled = False
End Sub
Bascom code
$regfile = "m16def.dat"
$crystal = 7372800
'Config Portd = Input
Config Portc = Input
Config Porta = Output
Config Portb = Input
Dim Portfeld(10) As Sram Integer
Dim Programm As Integer
Portb = 255
Portc = 255
Porta = 0
Waitms 1000
Porta = 255
Waitms 1000
For Programm = 1 To 10
Do
If Pinb.0 = 0 Then : Porta.0 = 1 : Else : Porta.0 = 0 : End If
If Pinb.1 = 0 Then : Porta.1 = 1 : Else : Porta.1 = 0 : End If
If Pinb.2 = 0 Then : Porta.2 = 1 : Else : Porta.2 = 0 : End If
If Pinb.3 = 0 Then : Porta.3 = 1 : Else : Porta.3 = 0 : End If
If Pinb.4 = 0 Then : Porta.4 = 1 : Else : Porta.4 = 0 : End If
If Pinb.5 = 0 Then : Porta.5 = 1 : Else : Porta.5 = 0 : End If
If Pinb.6 = 0 Then : Porta.6 = 1 : Else : Porta.6 = 0 : End If
If Pinb.7 = 0 Then : Porta.7 = 1 : Else : Porta.7 = 0 : End If
Loop Until Pinc.0 = 0
If Pinc.0 = 0 Then Do
If Pinb.0 = 0 Then : Porta.0 = 1 : Portfeld(1) = Portfeld(1) + 1 : Else : Porta.0 = 0 : End If
If Pinb.1 = 0 Then : Porta.1 = 1 : Portfeld(1) = Portfeld(1) + 2 : Else : Porta.1 = 0 : End If
If Pinb.2 = 0 Then : Porta.2 = 1 : Portfeld(1) = Portfeld(1) + 4 : Else : Porta.2 = 0 : End If
If Pinb.3 = 0 Then : Porta.3 = 1 : Portfeld(1) = Portfeld(1) + 8 : Else : Porta.3 = 0 : End If
If Pinb.4 = 0 Then : Porta.4 = 1 : Portfeld(1) = Portfeld(1) + 16 : Else : Porta.4 = 0 : End If
If Pinb.5 = 0 Then : Porta.5 = 1 : Portfeld(1) = Portfeld(1) + 32 : Else : Porta.5 = 0 : End If
If Pinb.6 = 0 Then : Porta.6 = 1 : Portfeld(1) = Portfeld(1) + 64 : Else : Porta.6 = 0 : End If
If Pinb.7 = 0 Then : Porta.7 = 1 : Portfeld(1) = Portfeld(1) + 128 : Else : Porta.7 = 0 : End If
Loop Until Pinc.0 = 0
If Pinc.1 = 0 Then Do
If Pinb.0 = 0 Then : Porta.0 = 1 : Portfeld(2) = Portfeld(2) + 1 : Else : Porta.0 = 0 : End If
If Pinb.1 = 0 Then : Porta.1 = 1 : Portfeld(2) = Portfeld(2) + 2 : Else : Porta.1 = 0 : End If
If Pinb.2 = 0 Then : Porta.2 = 1 : Portfeld(2) = Portfeld(2) + 4 : Else : Porta.2 = 0 : End If
If Pinb.3 = 0 Then : Porta.3 = 1 : Portfeld(2) = Portfeld(2) + 8 : Else : Porta.3 = 0 : End If
If Pinb.4 = 0 Then : Porta.4 = 1 : Portfeld(2) = Portfeld(2) + 16 : Else : Porta.4 = 0 : End If
If Pinb.5 = 0 Then : Porta.5 = 1 : Portfeld(2) = Portfeld(2) + 32 : Else : Porta.5 = 0 : End If
If Pinb.6 = 0 Then : Porta.6 = 1 : Portfeld(2) = Portfeld(2) + 64 : Else : Porta.6 = 0 : End If
If Pinb.7 = 0 Then : Porta.7 = 1 : Portfeld(2) = Portfeld(2) + 128 : Else : Porta.7 = 0 : End If
Loop Until Pinc.1 = 0
If Pinc.0 = 0 And Pinc.1 = 0 Then Do
If Pinb.0 = 0 Then : Porta.0 = 1 : Portfeld(3) = Portfeld(3) + 1 : Else : Porta.0 = 0 : End If
If Pinb.1 = 0 Then : Porta.1 = 1 : Portfeld(3) = Portfeld(3) + 2 : Else : Porta.1 = 0 : End If
If Pinb.2 = 0 Then : Porta.2 = 1 : Portfeld(3) = Portfeld(3) + 4 : Else : Porta.2 = 0 : End If
If Pinb.3 = 0 Then : Porta.3 = 1 : Portfeld(3) = Portfeld(3) + 8 : Else : Porta.3 = 0 : End If
If Pinb.4 = 0 Then : Porta.4 = 1 : Portfeld(3) = Portfeld(3) + 16 : Else : Porta.4 = 0 : End If
If Pinb.5 = 0 Then : Porta.5 = 1 : Portfeld(3) = Portfeld(3) + 32 : Else : Porta.5 = 0 : End If
If Pinb.6 = 0 Then : Porta.6 = 1 : Portfeld(3) = Portfeld(3) + 64 : Else : Porta.6 = 0 : End If
If Pinb.7 = 0 Then : Porta.7 = 1 : Portfeld(3) = Portfeld(3) + 128 : Else : Porta.7 = 0 : End If
Loop Until Pinc.0 = 0 And Pinc.1 = 0
If Pinc.6 = 0 Th0en Do
If Pinb.0 = 0 Then : Porta.0 = 1 : Portfeld(4) = Portfeld(4) + 1 : Else : Porta.0 = 0 : End If
If Pinb.1 = 0 Then : Porta.1 = 1 : Portfeld(4) = Portfeld(4) + 2 : Else : Porta.1 = 0 : End If
If Pinb.2 = 0 Then : Porta.2 = 1 : Portfeld(4) = Portfeld(4) + 4 : Else : Porta.2 = 0 : End If
If Pinb.3 = 0 Then : Porta.3 = 1 : Portfeld(4) = Portfeld(4) + 8 : Else : Porta.3 = 0 : End If
If Pinb.4 = 0 Then : Porta.4 = 1 : Portfeld(4) = Portfeld(4) + 16 : Else : Porta.4 = 0 : End If
If Pinb.5 = 0 Then : Porta.5 = 1 : Portfeld(4) = Portfeld(4) + 32 : Else : Porta.5 = 0 : End If
If Pinb.6 = 0 Then : Porta.6 = 1 : Portfeld(4) = Portfeld(4) + 64 : Else : Porta.6 = 0 : End If
If Pinb.7 = 0 Then : Porta.7 = 1 : Portfeld(4) = Portfeld(4) + 128 : Else : Porta.7 = 0 : End If
Loop Until Pinc.6 =
If Pinc.6 = 0 Then : Programm = 100 : Else : Programm = 1 : End If
Next Programm
Porta = 255
Waitms 500
Porta = Portfeld(1)
Waitms 400
Porta = 255
Waitms 500
Porta = Portfeld(2)
Waitms 400
Porta = 255
Waitms 500
Porta = Portfeld(3)
Waitms 400
Porta = 255
Waitms 500
Porta = Portfeld(4)
Waitms 400
Do
Loop
das bascom programm empfängt die daten und soll sie dann alle nacheinander anzeigen
"Porta = 255
Waitms 500
Porta = Portfeld(1)
Waitms 400"
der teil hier
Am porta hängen 8 leds und an portb lpt1( Daten) an pinc.0,pinc.1,pinc.6,pinc.7 Hängt lpt1(steuer signale)
ich hoffe das es diesmal verständlich ist (ich kann schwer irgendwelche sachen zu beschreiben) und mir jemand weiter helfen kann
mfg thomas
ich hab folgendes Problem: ich hab angefangen eine 3koordinaten Fräßen mit Lego zu bauen. die mechanik lässt mir nur noch malen zu. zwei probleme taten sich auf die motoren zu positioniern um nicht zu schwingen.(das geht noch einigermaßen und funktioniert unter last auch) und mein Hauot problem ist nun das ich die daten nicht richtig zum µC senden kann das will nicht klappen. ich arbeite mit lpt1 und als µC einen atmega16.
Vb code
Private Sub Timer2_Timer()
Out (&HBE), 0
byte1 = byte1 + 1
'Out (&H3BE), byte1 - 1
If byte1 = 1 Then Out (&H3BC), erstebytex: Out (&HBE), byte1 - 1 ': Out (&HBE), byte1 + 8
If byte1 = 2 Then Out (&H3BC), letztebytex: Out (&HBE), byte1 - 1 ': Out (&HBE), byte1 + 8
If byte1 = 3 Then Out (&H3BC), erstebytey: Out (&HBE), byte1 - 1 ': Out (&HBE), byte1 + 8
If byte1 = 4 Then Out (&H3BC), letztebytey: Out (&HBE), byte1 - 1 ': Out (&HBE), byte1 + 8
'If byte1 = 5 Then Out (&H3BC), erstebytez: Out (&HBE), byte1 - 1 ': Out (&HBE), byte1 + 8
'If byte1 = 6 Then Out (&H3BC), letztebytez: Out (&HBE), byte1 - 1 ': Out (&HBE), byte1 + 8
'If byte1 = 7 Then Out (&H3BC), erstebytew: Out (&HBE), byte1 - 1 ': Out (&HBE), byte1 + 8
'If byte1 = 8 Then Out (&H3BC), letztebytew: Out (&HBE), byte1 - 1 ': Out (&HBE), byte1 + 8
'If byte1 = 9 Then byte1 = 0: Out (&HBE), 8: Timer2.Enabled = False
If byte1 = 9 Then Timer2.Enabled = False
End Sub
Bascom code
$regfile = "m16def.dat"
$crystal = 7372800
'Config Portd = Input
Config Portc = Input
Config Porta = Output
Config Portb = Input
Dim Portfeld(10) As Sram Integer
Dim Programm As Integer
Portb = 255
Portc = 255
Porta = 0
Waitms 1000
Porta = 255
Waitms 1000
For Programm = 1 To 10
Do
If Pinb.0 = 0 Then : Porta.0 = 1 : Else : Porta.0 = 0 : End If
If Pinb.1 = 0 Then : Porta.1 = 1 : Else : Porta.1 = 0 : End If
If Pinb.2 = 0 Then : Porta.2 = 1 : Else : Porta.2 = 0 : End If
If Pinb.3 = 0 Then : Porta.3 = 1 : Else : Porta.3 = 0 : End If
If Pinb.4 = 0 Then : Porta.4 = 1 : Else : Porta.4 = 0 : End If
If Pinb.5 = 0 Then : Porta.5 = 1 : Else : Porta.5 = 0 : End If
If Pinb.6 = 0 Then : Porta.6 = 1 : Else : Porta.6 = 0 : End If
If Pinb.7 = 0 Then : Porta.7 = 1 : Else : Porta.7 = 0 : End If
Loop Until Pinc.0 = 0
If Pinc.0 = 0 Then Do
If Pinb.0 = 0 Then : Porta.0 = 1 : Portfeld(1) = Portfeld(1) + 1 : Else : Porta.0 = 0 : End If
If Pinb.1 = 0 Then : Porta.1 = 1 : Portfeld(1) = Portfeld(1) + 2 : Else : Porta.1 = 0 : End If
If Pinb.2 = 0 Then : Porta.2 = 1 : Portfeld(1) = Portfeld(1) + 4 : Else : Porta.2 = 0 : End If
If Pinb.3 = 0 Then : Porta.3 = 1 : Portfeld(1) = Portfeld(1) + 8 : Else : Porta.3 = 0 : End If
If Pinb.4 = 0 Then : Porta.4 = 1 : Portfeld(1) = Portfeld(1) + 16 : Else : Porta.4 = 0 : End If
If Pinb.5 = 0 Then : Porta.5 = 1 : Portfeld(1) = Portfeld(1) + 32 : Else : Porta.5 = 0 : End If
If Pinb.6 = 0 Then : Porta.6 = 1 : Portfeld(1) = Portfeld(1) + 64 : Else : Porta.6 = 0 : End If
If Pinb.7 = 0 Then : Porta.7 = 1 : Portfeld(1) = Portfeld(1) + 128 : Else : Porta.7 = 0 : End If
Loop Until Pinc.0 = 0
If Pinc.1 = 0 Then Do
If Pinb.0 = 0 Then : Porta.0 = 1 : Portfeld(2) = Portfeld(2) + 1 : Else : Porta.0 = 0 : End If
If Pinb.1 = 0 Then : Porta.1 = 1 : Portfeld(2) = Portfeld(2) + 2 : Else : Porta.1 = 0 : End If
If Pinb.2 = 0 Then : Porta.2 = 1 : Portfeld(2) = Portfeld(2) + 4 : Else : Porta.2 = 0 : End If
If Pinb.3 = 0 Then : Porta.3 = 1 : Portfeld(2) = Portfeld(2) + 8 : Else : Porta.3 = 0 : End If
If Pinb.4 = 0 Then : Porta.4 = 1 : Portfeld(2) = Portfeld(2) + 16 : Else : Porta.4 = 0 : End If
If Pinb.5 = 0 Then : Porta.5 = 1 : Portfeld(2) = Portfeld(2) + 32 : Else : Porta.5 = 0 : End If
If Pinb.6 = 0 Then : Porta.6 = 1 : Portfeld(2) = Portfeld(2) + 64 : Else : Porta.6 = 0 : End If
If Pinb.7 = 0 Then : Porta.7 = 1 : Portfeld(2) = Portfeld(2) + 128 : Else : Porta.7 = 0 : End If
Loop Until Pinc.1 = 0
If Pinc.0 = 0 And Pinc.1 = 0 Then Do
If Pinb.0 = 0 Then : Porta.0 = 1 : Portfeld(3) = Portfeld(3) + 1 : Else : Porta.0 = 0 : End If
If Pinb.1 = 0 Then : Porta.1 = 1 : Portfeld(3) = Portfeld(3) + 2 : Else : Porta.1 = 0 : End If
If Pinb.2 = 0 Then : Porta.2 = 1 : Portfeld(3) = Portfeld(3) + 4 : Else : Porta.2 = 0 : End If
If Pinb.3 = 0 Then : Porta.3 = 1 : Portfeld(3) = Portfeld(3) + 8 : Else : Porta.3 = 0 : End If
If Pinb.4 = 0 Then : Porta.4 = 1 : Portfeld(3) = Portfeld(3) + 16 : Else : Porta.4 = 0 : End If
If Pinb.5 = 0 Then : Porta.5 = 1 : Portfeld(3) = Portfeld(3) + 32 : Else : Porta.5 = 0 : End If
If Pinb.6 = 0 Then : Porta.6 = 1 : Portfeld(3) = Portfeld(3) + 64 : Else : Porta.6 = 0 : End If
If Pinb.7 = 0 Then : Porta.7 = 1 : Portfeld(3) = Portfeld(3) + 128 : Else : Porta.7 = 0 : End If
Loop Until Pinc.0 = 0 And Pinc.1 = 0
If Pinc.6 = 0 Th0en Do
If Pinb.0 = 0 Then : Porta.0 = 1 : Portfeld(4) = Portfeld(4) + 1 : Else : Porta.0 = 0 : End If
If Pinb.1 = 0 Then : Porta.1 = 1 : Portfeld(4) = Portfeld(4) + 2 : Else : Porta.1 = 0 : End If
If Pinb.2 = 0 Then : Porta.2 = 1 : Portfeld(4) = Portfeld(4) + 4 : Else : Porta.2 = 0 : End If
If Pinb.3 = 0 Then : Porta.3 = 1 : Portfeld(4) = Portfeld(4) + 8 : Else : Porta.3 = 0 : End If
If Pinb.4 = 0 Then : Porta.4 = 1 : Portfeld(4) = Portfeld(4) + 16 : Else : Porta.4 = 0 : End If
If Pinb.5 = 0 Then : Porta.5 = 1 : Portfeld(4) = Portfeld(4) + 32 : Else : Porta.5 = 0 : End If
If Pinb.6 = 0 Then : Porta.6 = 1 : Portfeld(4) = Portfeld(4) + 64 : Else : Porta.6 = 0 : End If
If Pinb.7 = 0 Then : Porta.7 = 1 : Portfeld(4) = Portfeld(4) + 128 : Else : Porta.7 = 0 : End If
Loop Until Pinc.6 =
If Pinc.6 = 0 Then : Programm = 100 : Else : Programm = 1 : End If
Next Programm
Porta = 255
Waitms 500
Porta = Portfeld(1)
Waitms 400
Porta = 255
Waitms 500
Porta = Portfeld(2)
Waitms 400
Porta = 255
Waitms 500
Porta = Portfeld(3)
Waitms 400
Porta = 255
Waitms 500
Porta = Portfeld(4)
Waitms 400
Do
Loop
das bascom programm empfängt die daten und soll sie dann alle nacheinander anzeigen
"Porta = 255
Waitms 500
Porta = Portfeld(1)
Waitms 400"
der teil hier
Am porta hängen 8 leds und an portb lpt1( Daten) an pinc.0,pinc.1,pinc.6,pinc.7 Hängt lpt1(steuer signale)
ich hoffe das es diesmal verständlich ist (ich kann schwer irgendwelche sachen zu beschreiben) und mir jemand weiter helfen kann
mfg thomas