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:

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