Programme

Mise au point du programme d’application

Il est nécessaire pour la suite d’aboutir à un programme  au format .hex. On peut programmer en C ou en assembleur.

Dans notre cas, nous avons commencer par le programme en C ci-dessous:

#include<pic1684.h

void interrupt decalage(void);

main(void)
{
TRISA = 0xFF; // 8 entrées pour A
TRISB = 0×00; // 8 sorties pour B
OPTION = 0×20; // prescaler 2 , mode compteur
INTCON = 0xA0; // autorise l’interruption timer
PORTB = 0xFE; // une seule diode allumée
TMR0 = 0xFE ; // le minimum pour la simulation, le maximum autrement
while(1)
{
// on ne fait rien que recopier sur 2 segments la valeur de SW1
if ((PORTA & 0×01) == 1) PORTA = 0×06;
}
}
void interrupt decalage(void)
{
TMR0 = 0xFE; // le minimum
PORTB = (PORTB << 1)| 1 ;
if (PORTB == 0xFF) PORTB = 0xFE;
T0IF = 0; // acquittement interruption
}
Après avoir initialisé correctement le PIC en particulier son timer et l’interruption associée, le programme principal est une boucle vide ou presque vide (on ne fait que recopier sur un voyant l’état d’un interrupteur). L’interruption qui survient à intervalles réguliers sert à décaler et afficher une parmi les 8 diodes électroluminescentes.Le programme assembleur  généré par le compilateur C n’est pas optimum et peu lisible car, en particulier, il comporte beaucoup de goto. Il me semble préférable dans ces conditions de reprendre le code assembleur  et de le purger afin de minimiser par anticipation la taille de la ROM associée et surtout de rendre ce code plus lisible (fichier chen.asm ). On notera aussi que un deuxième programme existe (chen_sim.asm) identique au premier mais avec les temporisations neutralisées afin de raccourcir les temps de simulation.

Génération du code VHDL de la ROM

Heureusement ! nous est fourni un utilitaire de génération automatique !

La génération de la rom est très simple.

  • Ouvrir une fenêtre DOS
  • Ce placer dans le répertoire de travail : .\picvhdl\prog
  • Exécuter : hex2rom chen_sim.hex ROM84 10l14s > ..\rtl\rom84_sim.vhd
  • Exécuter : hex2rom chen.hex ROM84 10l14s > ..\rtl\ rom84.vhd

On rajoute ainsi au projet PIC ces 2 fichiers VHDL ( un pour la synthèse et l’autre pour la simulation)  correspondants au code exécutable de l’application.

Leave a Reply

You must be logged in to post a comment.