CONFIG TIMERn mit "configuration"

  • Frohe Ostern

LotadaC

Sehr aktives Mitglied
22 Jan 2009
3.143
58
48
Hennigsdorf
Sprachen
BascomAVR, Assembler
Hi,

hat irgendwer von den Spezialisten schon mal die optionale "configuration" genutzt?
Zitat aus der BASCOM-Hilfe:
CONFIG TIMER1 = COUNTER | TIMER | PWM ,
EDGE=RISING | FALLING , PRESCALE= 1|8|64|256|1024 ,
NOISE_CANCEL=0 |1, CAPTURE_EDGE = RISING | FALLING ,
CLEAR_TIMER = 1|0,
COMPARE_A = CLEAR | SET | TOGGLE | DISCONNECT ,
COMPARE_B = CLEAR | SET | TOGGLE | DISCONNECT ,
PWM = 8 | 9 10 ,
COMPARE_A_PWM = CLEAR_UP| CLEAR_DOWN | DISCONNECT
COMPARE_B_PWM = CLEAR_UP| CLEAR_DOWN | DISCONNECT
[,CONFIGURATION=NAME]
und:
CONFIGURATION is optional. When you add configuration=mysetting, you can use this setting when you start the timer : START TIMER0 , mysetting
If you have multiple settings, you can start the timer with these different Settings.
Grundsätzlich sollte es damit ja möglich sein, mehrere Konfigurationen vorzubereiten, und dann zwischen denen umzuschalten.
Ich habe in Anlehnung an diesen Thread zwei vorbereitet:


CodeBox BascomAVR
Config Timer1 = Pwm , Prescale = 1 , Compare A Pwm = Disconnect , Compare B Pwm = Disconnect , Configuration = Pwm_off
Config Timer1 = Pwm , Prescale = 64 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Configuration = Pwm_on
Habe das dann mal im Simulator durchgespielt.
Beide Configs werden sofort wirksam, also der erste setzt sofort Prescaler und ClockSource in TCCR1A und TCCR1B (der Timer läuft los, mit NOPs kontrolliert).
Der Zweite setzt auch beide Register (Also auch den neuen Prescaler, und eben auch die COM-Bits). TCNT zählt weiter (wird nicht zurückgesetzt). Außerdem werden die PWM-Beine zu Ausgängen.
Soweit, so gut.
Wenn man jetzt aber:


CodeBox BascomAVR
Start Timer1 , Pwm_off
Start Timer1 , Pwm_on

wird zwar in TCCR1B der Prescaler umgesetzt, aber nicht der Compare Output Mode in TCCR1A (und auch nicht das DDR der PWM-Beine).

Was mach ich falsch?
(Ja klar, ich kann natürlich selbst die Register-Bits umsetzen lassen, aber das ist doch genau der Hintergrund dieser Konfigurations-Settings-Geschichte. Warum nur der Prescaler, aber nicht der COM? (CS- und WGM-Bits hab ich noch gar nicht getestet - sind ja auch in den Registern drin))

LotadaC
 
Zuletzt bearbeitet:

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)