Tonyy
12.12.2010, 20:32
Hallo,
Ich wollte mich an ein Programm für einen Servostrecher machen, also eine Schaltung, die die eingehenden Signale auseinander spreizt und weitergibt an den servo. Nun ist mir noch einiges unklar, deshalb hier der Code:
$regfile "m8def.dat"
$crystal = 1000000
Config Portd = Output
Config Portb = Input
Dim Esignal As Byte
Dim Msignalplus As Byte
Dim Msignalminus As Byte
Dim Aplus As Byte
Dim Aminus As Byte
Dim Bplus As Byte
Dim Bminus As Byte
Aplus = Esignal - 150
Bplus = Aplus * 2
Msignalplus = Bplus + 150
Aminus = 150 - Esignal
Bminus = Aminus * 2
Msignalminus = 150 - Aminus
Do
Start:
Pulsein Esignal , Pinb , 0 , 1
Select Case Esignal
Case Is < 150:
Pulseout Portd , 0 , Msignalminus
Case Is = 150:
Pulseout Portd , 0 , Esignal
Case Is > 150:
Pulseout Portd , 0 , Msignalplus
Case Else:
Goto Start
Waitms 10
End Select
Loop
End
Ich habe auf jedenfall verstanden, dass ich mehr mHz brauch als den einen, den der Mega8 hat, möglichst 8mHz aber nun versteh ich das mit Pulseout nicht, gibts da irgendwie einen Umrechenfaktor, den ich vergessen habe? Warum kann man nicht einfach Pulseout = 150 schreiben?
Ja ich hatte bereits die Bascom-Hilfe mir angeschaut, wurde aber daraus auch nicht schlauer.
Danke im Voraus!
mfg
Ich wollte mich an ein Programm für einen Servostrecher machen, also eine Schaltung, die die eingehenden Signale auseinander spreizt und weitergibt an den servo. Nun ist mir noch einiges unklar, deshalb hier der Code:
$regfile "m8def.dat"
$crystal = 1000000
Config Portd = Output
Config Portb = Input
Dim Esignal As Byte
Dim Msignalplus As Byte
Dim Msignalminus As Byte
Dim Aplus As Byte
Dim Aminus As Byte
Dim Bplus As Byte
Dim Bminus As Byte
Aplus = Esignal - 150
Bplus = Aplus * 2
Msignalplus = Bplus + 150
Aminus = 150 - Esignal
Bminus = Aminus * 2
Msignalminus = 150 - Aminus
Do
Start:
Pulsein Esignal , Pinb , 0 , 1
Select Case Esignal
Case Is < 150:
Pulseout Portd , 0 , Msignalminus
Case Is = 150:
Pulseout Portd , 0 , Esignal
Case Is > 150:
Pulseout Portd , 0 , Msignalplus
Case Else:
Goto Start
Waitms 10
End Select
Loop
End
Ich habe auf jedenfall verstanden, dass ich mehr mHz brauch als den einen, den der Mega8 hat, möglichst 8mHz aber nun versteh ich das mit Pulseout nicht, gibts da irgendwie einen Umrechenfaktor, den ich vergessen habe? Warum kann man nicht einfach Pulseout = 150 schreiben?
Ja ich hatte bereits die Bascom-Hilfe mir angeschaut, wurde aber daraus auch nicht schlauer.
Danke im Voraus!
mfg