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, 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.
#ifndef MfG
#define MfG
Hallo Jaecko,
hier der Code.....
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:
Da fehlt die Zuweisung, welchen Wert der Prescaler haben soll.Code:Config Adc = Single , Prescaler = , Reference = Avcc
#ifndef MfG
#define MfG
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.
#ifndef MfG
#define MfG
1.11.90 kompiliert ohne Fehler, wenn ADC Prescaler auf Auto steht.
Wenn das Herz involviert ist, steht die Logik außen vor! \/
Lesezeichen