enable interrupts fehlt auf jeden fall schonmal und dann schreib doch nochmal wo was an dem mega8 hängt
Hallo!
Habe zu dem Thema Pwm schon eifrig die Suche bemüht, finde aber trotzdem meinen Fehler nicht
Eigentlich sollte ja jetzt der eine Motor stehen und der andere langsam beschleunigen. Tun sie aber nicht und drehen beide gleich.Code:$regfile = "m8def.dat" $crystal = 4000000 Config Pinb.1 = Output Config Pinb.2 = Output Config Portd = Output Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1 Portc.1 = 1 Portc.2 = 1 Dim X As Byte Dim Vormitte As Integer Dim Seitemitte As Integer Dim Vor As Integer Dim Seite As Integer Do For X = 0 To 255 Pwm1a = X Pwm1b = 0 Waitms 20 Next Loop
Vielleicht findet ja von Euch jemand meinen Fehler.
Gruß Georg
enable interrupts fehlt auf jeden fall schonmal und dann schreib doch nochmal wo was an dem mega8 hängt
Linus Torvalds, Entwickler von LinuxIch will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
Hi!
An enable interrupts liegt es schon mal net hab ich grad probiert
Also an Pb1 und Pb2 hängen je ein Motortreiber. Die schaltung an sich funktioniert auch nur leider lassen sich die Motoren komischer Weise nicht getrennt steuern (an beiden Pins kommt genau das selbe raus) und im obigen
Beispiel beschleunigen eben beide Motoren immer gleich. Wo es ja eigentlich logisch wäre wenn einer stehen bliebe....
Oh hab gerade noch was seltsames festgestellt:
wenn ich
Pwm1a = 0
Pwm1b = x
schreibe geht es andersrum aber nicht...
hi,
mit der anweisung 'pwmxx=' hab ich schon meine überaschungen erlebt, probier mal die register direkt zu beschreiben, also 'ocr1a= und ocr1b=', das macht die sache deutlicher.
du kannst auch nit 'pwm1a=' beschreiben und anschliessen (wenn ein lcd angeschlossen ist) die register auslesen ('lcd ocr1a'), dann siehst du, was eingetragen ist und warum der so reagiert.
grüssens, harry
der kopf ist rund damit das denken seine richtung ändern kann...
Lesezeichen