PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Timer verfälscht LCD?!



TobiasBlome
22.05.2007, 18:18
Hallo,
sobald ich die Zeile für den Timer in das Programm einfüge wird aus dem Wort "hallo" das Wort "lello" !!!
Aussedem verschiebt sich das Wort von "locate1,1" auf "locate2,5" Warum auch immer!

Hat jemand eine Erklärung?!
PS. ich habe mal ein altes Programm eingespielt und alles bestens!!!


Tobias


'Konfiguration µC:

$regfile = "m8def.dat" 'AT-Mega8
$crystal = 1000000 'Quarz: 1 MHz INTERN!!!
$baud = 2400 'Baudrate der UART: 2400 Baud



'Konfiguration LCD
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.3 , Db6 = Portb.2 , Db7 = Portd.6 , E = Portd.7 , Rs = Portb.0
Cursor Off Noblink ' Cursor aus


'Timer
'Config Portc = Input
Config Adc = Single , Prescaler = Auto , Reference = Avcc
'Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 64 'FÜR PWM!!!

'-------------------------------------------------------------------------------
'Ein- Ausgänge:

Ddrb = &B11111111 '1 Ausgang, 0 Eingang = Pin PB7-0 als Ausgang
Ddrc = &B0000011 '1 Ausgang, 0 Eingang = Pin PC6-2 als Eingang; 1-0 als Ausgang
Ddrd = &B11111011 '1 Ausgang, 0 Eingang = Pin PD7-0 als Ausgang; 0 als Eingang (Freigabe)
'Portc = &B11111111 'PC0...PC7 auf High setzen
Portb.1 = 0 'damit der Motor nicht kurzzeitig anläuft



'-------------------------------------------------------------------------------
' Variablen
'-------------------------------------------------------------------------------
Do

Cls
Locate 1 , 1
Lcd "hallo"
Loop

linux_80
22.05.2007, 18:39
Hallo,

so wie das aussieht, benutzt Du für das LCD die gleichen Pins wie der Timer für das PWM !
Bei PortB.2 ist das zB. so. Da können die Daten für das LCD natürlich nicht mehr stimmen.

TobiasBlome
22.05.2007, 18:48
Stimmt - aber wo steht denn, welche Pin´s für die PWM / Timer benutzt werden?
Ich dachte die Hardware PWM Pin´s sind festgelegt und das wäre bei meinem MEGA8 pin12 (PB1)

Tobias

TobiasBlome
22.05.2007, 18:51
habe gerade gesehen, dass OC1B auf PB2 liegt - aber den benutze ich gar nicht! heist das, dass ich den Pin trotzdem nicht für´s LCD benutzen kann?!

linux_80
22.05.2007, 21:22
Solche sachen stehen im Datenblatt.
Wenn Du den einen PWM-Ausgang nicht benutzten willst, darfst Du im Programm nicht angeben, das er doch verwendet werden soll.

Der AVR kann das, dass man nur einen PWM-Ausgang benutzt, und der andere für eigene Verwendung frei bleibt.
Ich weiss aber nicht ob Bascom das so unterstützt, lass mal bei der Timer-Config-Zeile das Compare B... weg.

TobiasBlome
23.05.2007, 14:45
DANKE!!!!!!
Das war´s!

Tobias