Heyhey, der Typ wollt mir doch nur helfen!
Also, ich probiers mal
Unter welchem Aspekt in der Hilfe haste das gefunden? Was bedeutet das register in deinem code?
Druckbare Version
Heyhey, der Typ wollt mir doch nur helfen!
Also, ich probiers mal
Unter welchem Aspekt in der Hilfe haste das gefunden? Was bedeutet das register in deinem code?
Also, ich hab jetzt mal noch an dem Zeug rumgeprügelt und habs nicht hingekriegt... In der Bascom Hilfe finde ich die Compare-Funktion nur in Interaktion mit Pins, und das will ich ja net....
Hilfeeee.. Ich versteh auch den obigen Codeschnipsel net... Der Simulator scheint mir da auch etwas "komisch" zu sein, ich baus mal mit zwei Leds real auf, aber ich brauch den Code...
Herzliche Grüsse
Mario
Das Register läuft ja irgendwann über wenn du immer nur addierst.
Vielleicht fehlt ein IF Wert is zu groß, dann Wert = 0 ???
Funktioniert nicht ist ja nicht sehr aussagekräftig.
Das mit dem Überlaufen regelt Bascom selber. Er schmeisst den "Rest" weg und beginnt mit dem vorigen Wert wieder von 0.
Aber das ist ja nicht das Problem, er bringt mir (im Sim) ja nicht mal den ersten Interrupt, bei dem er mir aufm LCD etwas anzeigen soll.
Ich hab einfach den Code nicht.
Wie muss ich jetzt Timer1 initialisieren?
Wie schreibe ich die Doppelregiser (unter Bascom)
Was gibt es sonst noch zu beachten?
Herzlichen Gruss
Mario
Also, ich hab jetzt mal ein Testprogramm gebaut. Eine Led soll über den Compare-Interrupt blinken.
Hier ist mal der Code:
$regfile = "m8def.dat"
$crystal = 1000000
Ddrd.7 = 1
Portd.7 = 0
Config Timer1 = Timer , Prescale = 8
Enable Interrupts
On Compare1a An
Dim X As Long
X = 1500
Compare1a = X
Enable Timer1
Do
Loop
An:
Disable Interrupts
X = X + 1500
Compare1a = X
Toggle Portd.7
Enable Interrupts
Return
End
Doch: die Led bleibt dunkel!
Was ist falsch?
Könnt ihr mir da weiterhelfen?
Herzlichen Gruss
Mario
Was hast du eigentlich vor? PWM? Comapre=vergleichen. Was wird denn verglichen?
Geht ja garnicht. Wenn das Programm im AVR ist hat BASCOM damit ja nichts mehr zu tun.Zitat:
Das mit dem Überlaufen regelt Bascom selber.
Jo, der AVR regelt den Überschuss.
Ich vergleiche den Wert im OCR1a-Register mti dem aktuellen Zählerstand von Timer1. Ist er gleich, soll ein Interrupt kommen und der Stand im OCR1a neu gesetzt werden.
Nur geht das nicht, da ich die Befehle nicht kenne.