ATTiny13 Timer0-CompareA-ISR wird nicht ausgeführt

Gast #2844719
Lesenswert?

Moinmoin
Ich will mich z.Z. mal wieder an nem Atmel probieren und dachte mir als 
kleine Fingerübung erstmal nen Pin-Toggel zu machen.
Als PWM auch kein Problem, aber er springt einfach nicht in die ISR 
rein.
Nachdem nix so funktioniert hat wie es soll hab ich mir einige 
Codestücke zusammengesucht, aber auch das bringt keine Besserung.
1
#include <avr/io.h>
2
#include <avr/interrupt.h>
3

4

5
int main(void)
6
{
7
  DDRB=0xFF;
8
    init_Timer0();
9
    sei();
10

11
    while(1)
12
    {
13
        asm("nop");
14
    }
15
}
16

17
void init_Timer0(void)
18
{
19
    TCCR0A = 0x02;          // CTC
20
    TCCR0B = 0x02;          // Prescaler =8 -> fTimer = 125kHz
21
    OCR0A = 0x7D;           // Comparevalue = 125
22
    TCNT0 = 0x00;           // reset Timer
23
    TIMSK0 =0x4;      // Enable compare interrupt
24
}
25

26

27
ISR (TIMER0_COMPA_vect)
28
{
29
  PORTB=0xFF;
30
}
Interessanterweise springt er nicht in die ISR, aber dafür ruft er 
init_Timer0() mehrfach auf(wenn ich mit F5 einfach laufen lasse). wtf? 
oO
Was überseh ich da?
Ach ja, Programmierumgebung ist Atmel Studio 6.
Gast #2844740
Lesenswert?

Dann muss der die Warnung aber sehr gut verstecken.
Bei mir steht nämlich nix mehr von wegen Warnung:
1
------ Build started: Project: Fototranse, Configuration: Debug AVR ------
2
Build started.
3
Project "Fototranse.cproj" (default targets):
4
Target "PreBuildEvent" skipped, due to false condition; ('$(PreBuildEvent)'!='') was evaluated as (''!='').
5
Target "CoreBuild" in file "C:\Program Files (x86)\Atmel\Atmel Studio 6.0\Vs\Compiler.targets" from project "C:\Users\Marodeur\Documents\Atmel Studio\Fototranse\Fototranse\Fototranse.cproj" (target "Build" depends on it):
6
  Using "RunCompilerTask" task from assembly "C:\Program Files (x86)\Atmel\Atmel Studio 6.0\Vs\Compiler.Task.dll".
7
  Task "RunCompilerTask"
8
    C:\Program Files (x86)\Atmel\Atmel Studio 6.0\make\make.exe all 
9
    make: Nothing to be done for `all'.
10
  Done executing task "RunCompilerTask".
11
  Using "RunOutputFileVerifyTask" task from assembly "C:\Program Files (x86)\Atmel\Atmel Studio 6.0\Vs\Compiler.Task.dll".
12
  Task "RunOutputFileVerifyTask"
13
        Program Memory Usage   :  232 bytes   22,7 % Full
14
        Data Memory Usage     :  0 bytes   0,0 % Full
15
  Done executing task "RunOutputFileVerifyTask".
16
Done building target "CoreBuild" in project "Fototranse.cproj".
17
Target "PostBuildEvent" skipped, due to false condition; ('$(PostBuildEvent)' != '') was evaluated as ('' != '').
18
Target "Build" in file "C:\Program Files (x86)\Atmel\Atmel Studio 6.0\Vs\Avr.common.targets" from project "C:\Users\Marodeur\Documents\Atmel Studio\Fototranse\Fototranse\Fototranse.cproj" (entry point):
19
Done building target "Build" in project "Fototranse.cproj".
20
Done building project "Fototranse.cproj".
21

22
Build succeeded.
23
========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========
Gast #2844744
Lesenswert?

Aber danke, das war genau die richtige Antwort.
Nachdem ich von Hand nachgeschaut hab ich rausgefunden dass das 
eigentlich
"TIM0_COMPA_vect" heißen muss.
Nu gehts auch.
Warum der Compiler aber nicht gemeckert hat versteh ich nicht.
#2844758
Lesenswert?

Marodeur schrieb:
> Warum der Compiler aber nicht gemeckert hat versteh ich nicht.

Die Warnung kommt natürlich nur, wenn die Datei auch wirklich compiliert 
wird. Das passiert aber nicht, wenn du nach einem erfolgreichen Build 
bei unveränderter Datei nochmal auf “Build“ klickst (wie bei obigen 
Output). Ändere den Namen und probiere es dann nochmal, und du wirst 
eine Warnung bekommen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren