ich habe mal wieder eine Frage zum Basom Programmieren.
Folgende Aufgabenstellung:
Ich möchte mit einem ATMEGA32 (16MHZ, Fuses gesetzt, ohne Quarz arbeitet er gar nicht ) ein PWM Signal ausgeben.
Die Frequenz und Pulsbreite sollen während der Laufzeit einstellbar sein. Versuche zur Umstellung während des Laufens waren an sich erfolgreich, indem man für die Standard PWM Routine einfach im Programm CompareX umstellt.
Allerdings ist es mir nicht gelungen die Frequenz des PWM Signals frei einzustellen, da ich nur bestimmte Teilungen machen kann. Würde aber 1. gern Frequenzen bis 100kHz einstellen, und 2. frei einstellen können nicht nur ~32kHz, ~7Khz, etc.
Habe es auch über einen Interrupt versucht, aber da kommt nur noch totaler Müll raus. Lass ich einfach nur Togglen, erreiche ich eine Frequenz von ~64kHz, versuche ich aber sinnvolle Teilungen (Pulsweite), oder eine andere Frequenz (zudem beeinflusst sich beides gegenseitig ) bricht die Frequenz auf unter 1Khz ein.
Was mache ich falsch, wo kann man da was einstellen? Würde am liebsten direkt in der Timerconfig vorgeben von wo bis wo er zählen soll (wie mans auch im Interrupt macht) damit könnte ich dann die Frequenz einstellen.
Ein Test mit einem C-Control Mega32 kann dies, sogar bis zu Frequenzen von 7,37 Mhz (Quarz 14,78Mhz), aber den will ich natürlich nicht nutzen.
Muss doch auch für Bascom ne passende Einstellschraube geben!?
Weitere Frage, wie kann ich die PWM Frequenz messen?
Sollte ja eigentlich mit Timer1, ICP1 und der Capture Funktion gehen?! Hab im Programm versucht, aber hab nur Wert 0 bekommen.
(PS: Gleiches Problem hatte ich mit der Funtkion für die Laufzeit $Time, $Date. Uhr Stand einfach Still obwohl Interrupts und Timer enabled)
Also ich Danke euch fürs Lesen und freue mich auf hilfreiche Antworten!
(Muss jetzt aber dringend los, deswegen entschuldige ich mich, dass das Korrekturlesen ausfällt. Antworten auf Zwischenfragen gebe ich ab Morgen wieder. THX)
Lesezeichen