Hallo,
hat jemand von euch "gute" Erfahrung mit dem AVR Simulator 2 in der AVR
Studio Version 4.18 in Zusammenhang mit dem Stimuli (*.stim) Files
gemacht ?
Ich habe ein Programm geschrieben, welches auf eine steigende Flanke am
ICP lauscht und bei Erfolg einer steigenden Flanke den zugehörigen ISR
startet. Mir ist nur aufgefallen, dass mit dem AVR Simulator 2 der Input
Capture Interrupt sowohl bei einer steigenden und einer fallenden Flanke
auslöst, obwohl der ICP auf steigende Flanke eingestellt ist. Bei dem
AVR Simulator(1) funktioniert das Einwandfrei, also der ICP Interrupt
löst nur bei einer steigenden Flanke aus. Den Interrupt habe ich selber
durch Anklicken des jeweiligen PINs im I/O View ausgelöst. Ist das ein
"bekannter" Bug oder muss ich bei dem Simulator 2 noch etwas bedenken?
Hier ist das Programm:
1 | #include <avr/io.h>
|
2 | #include <avr/interrupt.h>
|
3 |
|
4 | int main()
|
5 | {
|
6 | /* Interrupt Capture Pin einstellen */
|
7 | TCCR3B |= (1<<ICES3) | (1<<CS30);
|
8 | ETIMSK |= (1<<TICIE3);
|
9 | sei();
|
10 | while(1)
|
11 | {
|
12 | asm volatile ("nop");
|
13 | }
|
14 | return 0;
|
15 | }
|
16 | /* Interrupthandler vom ICP3 am Timer3 */
|
17 | ISR(TIMER3_CAPT_vect)
|
18 | {
|
19 | DDRB |=(1<<PB1);
|
20 | PORTB |=(1<<PB1);
|
21 | // Zum testen wird der PB1 auf High gesetzt
|
22 | }
|
Bin für jeden Hinweis dankbar!
opcode