Forum: Mikrocontroller und Digitale Elektronik Mega16: T0 und T1 zugleich mit Bascom?


von Kai (Gast)


Lesenswert?

hallo leute, ich wollte timer0 für t0 und timer1 für t1 benutzen um
impulsanzahlen zu messen.

die initialisierung von timer0 als counter und verbindung mit PB.0 als
t0 klappt, alles bestens:
tccr0=&B00000110

nun wollte ich auch gleichzeitig noch t1 nutzen, daß müßte ja dann ein
16-Bit timer sein.

tccr1a=&B00000000
tccr1b=&B00000110

brachte da keinen erfolg an PB.1

wo ist da mein fehler bei der initalisierung? oder muß noch ein andere
pin belegt werden?

besten dank

von Axel Rühl (Gast)


Lesenswert?

Hai Kai,

wie liesst du denn den Zählerstand aus?
Die Initialisierung sollte stimmen (habe eben nachgesehen).
vielleicht liest BASCOM das 16bit Register TCNT1H-L nicht richtig
aus...? (glaube ich eigentlich nicht)
Ich habe im Datenblatt vom Mega8 auf Seite 86/87 gerad' nachgelesen:
<Zitat>
TIM16_ReadTCNT1:
; Save global interrupt flag
in r18,SREG
; Disable interrupts
cli
; Read TCNT1 into r17:r16
in r16,TCNT1L
in r17,TCNT1H
; Restore global interrupt flag
out SREG,r18
ret
</Zitat>
Gruß
Axel

von Kai (Gast)


Lesenswert?

mh, kann es sein, daß timer/counter1 auch auf p0 zugreifen will?
auslesen tue ich es wie timer0, halt nur bezeichnungen auf timer1
angepasst, nur das display bleibt leer...keine hochzählende variable
*schnief

von Axel Rühl (Gast)


Lesenswert?

Mist, kann ich nicht weiterhelfen, habe FastAVR.
kannst ja deinen Code posten. Vielleicht steht irgentwo
STOP TIMER1
oder oben bei den Metastatements...
Du nimmst doch keinen Interrupt, sondern liesst die Zählervariable in
der Hauptschleife aus? Zählerstand oder Variable?
Axel

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.