Aller au contenu


Photo
- - - - -

interruption


  • Veuillez vous connecter pour répondre
3 réponses à ce sujet

#1 ichigohollow

ichigohollow

    Nouveau membre

  • Membres
  • 1 messages

Posté 05 juin 2010 - 03:31

Salut à tous
j'ai une application par un PIC 16F877A là ou j'utilise une interruption timer0 mais le problème est que sur isis la simulation ne marche pas; le programme sert à afficher un message sur l'afficheur lcd
c le prog si vous avez une idée


void interrupt()
{
cnt++; // Increment value of cnt on every interrupt
TMR0 = 96;
INTCON.INTF=0; // Set T0IE, clear T0IF
}

void main()
{
OPTION_REG = 0x84; // Assign prescaler to TMR0

TRISB = 0;
TMR0 = 96; // Timer0 initial value
INTCON = 0x90; // Enable TMRO interrupt
cnt = 0; // Initialize cnt
lcd_init(&PORTB); //initialisation de l'afficheur
do {
if (cnt == 400)
{
lcd_out(1,1,"A");
//delay_ms(1000);
cnt = 0; // Reset cnt
}
} while(1);
}[/code]


#2 Eskimon

Eskimon

    Membre

  • Membres
  • 71 messages

Posté 06 juin 2010 - 05:28

Alors où ton problème ?? Qu'est qui se passe (ou pas) sur ton écran ??
As tu plus de détails ??

Sinon, une légère modification serait de déclarer ta variable en "volatile" * car elle est modifié lors d'une interruption (et que donc c'est mieux d'être volatile :p )


*Volatile est un attribut appliqué à une variable lors de sa déclaration : cela indique au compilateur que le contenu de la variable est susceptible de changer à n'importe quel moment, de manière asynchrone, et force ainsi le compilateur à ne pas réaliser d'optimisation indésirables sur tout le code qui touche de près ou de loin aux variables déclarées avec l'attribut volatile.

#3 philou-RX

philou-RX

    Habitué

  • Membres
  • PipPip
  • 261 messages
  • Gender:Male
  • Location:Riviera - Vaudoise
  • Interests:Electronique / Informatique / Robotique / BD / et surtout les boissons fermentées au houblon

Posté 07 juin 2010 - 09:18

Salut à tous,


Peut-être un suggestion toute bête, mais est-ce que tu as bien déclaré tes librairies ???

@Eskimon: Alors je connaissais pas du tout ces variables "volatile", mais ne faudrait-il pas que "ichi..." déclare quand même un type "int", ou avec cet attribut, c'est le compilateur qui se charge de gérer ceci ???, en tout cas merci pour l'infos.

PS: J'ai fait quelques recherches sur les simulateurs ISIS, que je ne connaissais pas, je trouve vraiment puissance, car peut même simuler des micro avec leur codes. Malheureusement payant, bon je pense que je testerai quand même la version demo. Est-ce qu'il y a qu'ils l'ont testé...

#4 Eskimon

Eskimon

    Membre

  • Membres
  • 71 messages

Posté 07 juin 2010 - 11:19

Oupppsss oui bien sur il faut déclarer un type XD




0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users