Archiv verlassen und diese Seite im Standarddesign anzeigen : Verwirrung.....Timer von Mega16 mit Bascom
Hallo, habe einen ATMEGA16 und wollte mit diesem relativ zeitgenau eine Messung abwickeln. Leider mag der Compiler die Zeile Enable Timer1 nicht und antwortet mit einem Error 85: Unknown interrupt source COUNT<>3.
Die Konfig habe ich nach RN Wissen vorgenommen (Timer im 1 Sek. Takt).Bascom ist 1.11.8.7
Gibt es hier irgendwelche erkenntnisse?
Anmerkung: So genau habe ich das Datenblatt vom Mega noch nicht studiert, ich mache ein paar Analogwerterfassungen damit, nicht daß der Timer irgendwie in Konflikt mit den ADs steht.......?
Gruß
Jens
Schreib mal den kompletten Code hier rein.
Ein vom Compiler angegebener Fehler muss nicht immer in der bemeckerten Zeile sein. Kann sich auch um nen Folgefehler von weiter oben handeln.
Hallo Jaecko,
hier der Code.....
$regfile = "m16def.dat"
$crystal = 8000000
'Konfigurieren von Timer 1
Config Timer1 = Timer , Prescale = 256
On Timer1 Timer_irq
Timer1 = 34286
Enable Timer1
Enable Interrupts
Gruß
Jens
'Konfiguration der Displayports
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.3 , Rs = Portc.2
Config Lcdbus = 4
Config Adc = Single , Prescaler = , Reference = Avcc
Start Adc
Config Portb.0 = Output
Dim Anain1 As Integer 'Variablendefinition Analog In als Integer (0-1023)
Dim Anain2 As Integer ' generated. Take care that the chip supports all fuse bytes.$PROG &HFF,&HE1,&H99,&H00' generated. Take care that the chip supports all fuse bytes.$PROG &HFF,&HE1,&H99,&H00' generated. Take care that the chip supports all fuse bytes.Dim Anain2 As Integer
Dim Anain3 As Integer
Dim Anain4 As Integer
Dim Anain5 As Integer
Dim Zeit As Integer
Dim Multipli5 As Single
Dim Stunde As Single
Dim Strom As Single
Dim Ladung As Single
Dim Ladunggesamt As Single
Dim Amperesekunden As Single
Dim Ergebnis As String * 10 'Definition der Ausgabevariable als 10 stelliger String
Dim Ergebnis2 As String * 10
Dim Ergebnis3 As String * 10
Dim Ergebnis4 As String * 10
Dim Ergebnis5 As String * 10
Dim Stromfluss As String * 10
Cursor Off
Cls
'Konstanten
Zeit = 0
Ladung = 0
Ladunggesamt = 0
Stunde = 3600
Do
Portb.0 = 1
Waitms 50
Portb.0 = 0
Waitms 50
Zeit = 1
Cursor Off
Loop
End
'Endlosschleife
'Abfrage der ADC´s und Parametrierung des Wertebereichs
Timer_irq:
Timer1 = 34286
Anain5 = Getadc(4)
Multipli5 = 152 / 1023
Multipli5 = Multipli5 * Anain5
Strom = Multipli5
Ladung = Strom * Zeit
Ladung = Ladung - 1.0399
Ladung = Ladung
Ladunggesamt = Ladunggesamt + Ladung
Amperesekunden = Ladunggesamt / Zeit
Amperesekunden = Amperesekunden / 3600
Amperesekunden = Amperesekunden
Ergebnis5 = Str(amperesekunden , 5)
Ergebnis5 = Left(ergebnis5 , 5)
Stromfluss = Str(ladung , 5)
Stromfluss = Left(stromfluss , 5)
Locate 1 , 6
Lcd Ergebnis5
Locate 2 , 6
Lcd Stromfluss
Return
'Ende der Endlosschleife
Schau dir mal diese Zeile an:
Config Adc = Single , Prescaler = , Reference = Avcc
Da fehlt die Zuweisung, welchen Wert der Prescaler haben soll.
Ja, sorry, der ist aber 256, habe ich vergessen zu schreiben, der Fehler bleibt aber.....
Wenn ich deinen Code kompiliere, kommt nur eine Fehlermeldung, dass der Prescaler mit 256 nicht geht. Max für ADC ist 128.
Du meinst glaube ich den Timer Prescaler, Jaecko spricht vom ADC.
Den kannst du übrigens auch auf Auto stellen.
Gruß
Rolf
Also der ADC Prescaler steht auf Auto, der prescaler für den timer auf 256. Das sollte gehen, aber ich habe mir sagen lassen, daß solche Meldungen typisch für Bascom sind. Die Version 1.11.7.4 will den Code auch nicht, allerdings habe ich da noch ganz andere Fehlermeldungen.
Der Prescaler des Timers ist hier nicht wichtig.
Wenn in der von mir angegebenen Zeile (Config Adc = Single , Prescaler = , Reference = Avcc) hinter dem = von Prescaler auch was eingetragen ist (z.B. Auto), dann geht der Code bei mir ohne Fehler.
peterfido
05.06.2008, 11:10
1.11.90 kompiliert ohne Fehler, wenn ADC Prescaler auf Auto steht.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.