- Labornetzteil AliExpress         
Ergebnis 1 bis 8 von 8

Thema: Timer0: "ISR already defined"? (gelöst)

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    19.11.2005
    Beiträge
    56

    Timer0: "ISR already defined"? (gelöst)

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hi,
    ich habe ein komisches Problem. Ich möchte den Timer0 meines Mega8 benutzen, um eine Variabel hochzuzählen:

    Code:
    $regfile = "m8def.dat"
    $crystal = 8000000
    .
    .
    .
    Config Timer0 = Timer , Prescale = 8
    On Timer0 Isr_von_timer0
    .
    .
    .
    Isr_von_timer0:
    Zaehler = Zaehler + 1
    Return
    Allerdings gibt Bascom bei "On Timer0 Isr_von_timer0" den Fehler
    "Isr already defined" aus.
    Wodran kann das liegen? Ich habe schon mehrere Beispiele gesehen, in denen das genau so verwendet wird.
    Schonmal Danke für eure Hilfe!
    Gruß
    Jan

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    ... nimm 'mal das "Timer0:" in der ISR raus!

    Gruß Dirk

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    19.11.2005
    Beiträge
    56
    ist immernoch der gleiche Fehler...den "timer0:" hatte ich noch vom rumprobieren drin.
    Gruß
    Jan

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    ... musste gucken, ob in deinem restlichen Prog irgendwo noch Timer0-Definitionen auftauchen oder das Label "Isr_von_timer0" sonstwo verwendet wird.

    Gruß Dirk

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.04.2005
    Ort
    Aarau
    Alter
    41
    Beiträge
    982
    oder benutzt du z.b. den getrc5 befehl? dieser benutzt auch den timer0...


    gruss bluesmash

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    19.11.2005
    Beiträge
    56
    ne, den benutze ich nicht. Ansonsten benutze ich nur Servos, Int0 , den ADC und eben den Timer0.
    Hier mal das ganze Programm:

    Code:
    $regfile = "m8def.dat"
    $crystal = 8000000
    
    Config Adc = Single , Prescaler = Auto , Reference = Avcc
    Config Servos = 1 , Servo1 = Portb.1 , Reload = 10
    Config Timer0 = Timer , Prescale = 8
    On Timer0 Isr_von_timer0
    Config Int0 = Rising
    On Int0 Einedrehung
    Config Portb = Output
    Config Portc = Input
    Config Portd = Input
    Dim Zaehler As Word
    Dim Geschwindigkeit As Word
    Dim Zeit As Long
    Dim Servoposition As Byte
    Dim Potiposition As Byte
    Dim Temp As Byte
    Const Umfang = 80000000                                     'umfang in mm*100000
    Const Vmax = 312
    Start Adc                                                   'maximalgeschwindigkeit in cm/s
    
    
    
    
    Do
    Servo(1) = 50
    Zaehler = 0
    Waitms 3000
    Enable Interrupts
    Enable Int0
    
    
    Do
    Gosub Holepotipos
    If Geschwindigkeit > Vmax Then
    Servoposition = 0.9 * Servoposition
    End If
    If Geschwindigkeit < Vmax Then
    Servoposition = Potiposition
    End If
    Temp = 50 + Servoposition
    Servo(1) = Temp
    Loop
    
    
    Loop
    
    
    
    Einedrehung:
    Disable Interrupts
    Disable Timer0
    If Zaehler > 10 Then
    Zeit = Zaehler * 256
    Geschwindigkeit = Umfang / Zeit                             'in cm/s
    End If
    Zaehler = 0
    Enable Timer0
    Enable Interrupts
    
    Return
    
    
    Isr_von_timer0:
    Zaehler = Zaehler + 1
    If Zaehler > 65530 Then
    Disable Timer0
    Zaehler = 0
    End If
    
    Return
    
    
    Holepotipos:
    Potiposition = Getadc(0)
    Potiposition = Potiposition / 10
    Return
    
    
    
    
    
    End
    Gruß
    Jan

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    19.11.2005
    Beiträge
    56
    hmmm... ich bin doof... Servos scheint auch timer0 zu benutzen. Ohne Servos gehts jetzt^^
    Danke für eure Hilfe!
    Schöne Weihnachten!
    Gruß
    Jan

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    29.07.2007
    Beiträge
    386
    scheint nicht so, es ist so :

    Resources used

    TIMER0 is used to create the ISR.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test