Forum: Mikrocontroller und Digitale Elektronik Stimuli Datei und Interrupt


von opcode (Gast)


Lesenswert?

Sehr geehrte Forum-Mitglieder,

ich habe dieses Mal eine Frage bezüglich Stimuli. Ich experimentiere 
gerade etwas mit Stimuli herum, da ich mir dieses Werkzeug aneignen 
möchte, bevor ich mein eigentliches Projekt starte. Das 
Experiment-Programm wartet
auf fallende Flanken die am ICP3 hevorgerufen werden. Wenn eine fallende 
Flanke vorliegt, wird die entsprechende Interrupt Service Routine 
gestartet und als Test-Code wird in dieser ISR der Ausgang PB1 auf High 
gesetzt. Das Programm funktioniert auch soweit, wenn ich den Interrupt 
manuell hervorrufe, also indem in der CheckBox des Ports E den PE7 Port 
auf High setze. (PE7 ist der ICP3 beim Atmega128). Das Programm 
verzweigt in die ISR und der Test-Code wird hervorgerufen. Nun habe ich 
dieses mit Hilfe der Stimuli Datei versucht, habe aber festgestellt, 
dass zwar der PE7 in der PINE Checkbox auf High gesetzt wird, aber 
leider nicht in der Checkbox PORTE, was anscheinend erforderlich ist, um 
das Interrupt auszulösen, da es zumindestens in der manuellen Ausführung 
so war. Der Interrupt löst mit der Stimuli Datei leider nicht aus.

Hier ist das Experiment-Programm:
1
#include <avr/io.h>
2
#include <avr/interrupt.h>
3
4
int main()
5
{
6
7
  
8
  sei();                  // Globale Interrupts erlauben
9
  
10
  DDRE = 0x00;
11
  /* Interrupt Capture Pin einstellen */
12
  TCCR3B |= (1<<ICES3) | (1<<CS30);    // Steigende Flanke, Takt=Systemtakt/1
13
  ETIMSK |= (1<<TICIE3);
14
15
  while(1)
16
  {
17
    asm volatile ("nop");        //Endlosschleife
18
  }              
19
  return 0;
20
21
}
22
23
24
/* Interrupthandler vom ICP3 am Timer3 */
25
ISR(TIMER3_CAPT_vect)
26
{
27
  
28
  DDRB  |=(1<<PB1);
29
  PORTB |=(1<<PB1);
30
31
  // Zum testen wird der PB1 auf High gesetzt
32
}

und hier ist die Stimuli Datei:
1
000000250:80
2
000000280:00
3
000000300:80
4
000000320:00
5
999999999:FF

Wünsche ein schönes Wochenende.

mfGruß,
opcode

: Verschoben durch User
von opcode (Gast)


Lesenswert?

Ich muss mich korrigieren: Das Programm wartet auf steigende Flanken, so 
ist der ICP3 eingestellt.

von opcode (Gast)


Lesenswert?

Hat keiner eine Idee oder habe ich mich zu ungenau ausgedrückt ? Wenn 
ja, dann bitte ich um Kritik :-)

von Stefan E. (sternst)


Lesenswert?

opcode schrieb:
> Nun habe ich
> dieses mit Hilfe der Stimuli Datei versucht, habe aber festgestellt,
> dass zwar der PE7 in der PINE Checkbox auf High gesetzt wird, aber
> leider nicht in der Checkbox PORTE

Was absolut korrekt ist.

opcode schrieb:
> was anscheinend erforderlich ist, um
> das Interrupt auszulösen, da es zumindestens in der manuellen Ausführung
> so war.

Dann ist der Simulator wohl kaputt.

von opcode (Gast)


Lesenswert?

Simulator kaputt ?

An dieser Stelle eine andere Frage bzw. eher eine Feststellung: AVR 
Studio 5 unterstützt noch keine Stimuli Files oder täusche ich mich da ? 
Ich habe nichts finden können.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.