1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
| #include <ez8.h>
#include <stdio.h>
#include <sio.h> // non-standard I/O
#include "main.h"
#include "gpio.h"
#include "afficheur.h"
#include "timer.h"
#include "test_button.h"
#include "uart.h"
#include "SPI.h"
#include "DS1722.h"
// Default user flash optionbits.
FLASH_OPTION1 = 0xFF;
FLASH_OPTION2 = 0xFF;
///////////////////////////////////////////////////////
// Global - Variable
int ProgStat = BUSY; // Program status
int ProgDir = UP;
int button_push = 0; // 0-1 Wait State 2 > Change State
unsigned int G_BufferChar[4]; // contient les caractères à afficher
// recupère un caratère
unsigned int getbyte(void)
{
unsigned int ch;
while (!(U0STAT0 & 0x80)); // Wait for receive data available
ch = U0D;
return(ch);
}
// envoie un caractère
void putbyte(unsigned char data)
{
int i;
while (!(U0STAT0 & 0x04)); // Transmit Data register enabled
U0D = data; // Send data
}
////////////////////////////////////////////////////////
// A Simple status routine that gets called by the ISR to
// Change status
void setStatus( int status )
{
ProgStat = status; //Program status
}
////////////////////////////////////////////////////////
// A Simple routine that toggles the direction of
// leds
void toggle_uart( void )
{
unsigned int ch;
//ch = getbyte(); // recupere caratere
ch = getch(); // recupere caratere
// decalage des lettres du tableau
G_BufferChar[0] = G_BufferChar[1];
G_BufferChar[1] = G_BufferChar[2];
G_BufferChar[2] = G_BufferChar[3];
G_BufferChar[3] = ch;
if (ch == 'a') // depard de la mesure de temperature
{
G_MesureTemperatureON = 1;
}
if (ch == 'z') // arrêt de la mesure de temperature
{
G_MesureTemperatureON = 0;
}
putbyte(ch);
}
// programme principale
void main ()
{
// initialisation des variables globales
G_NumeroMesure = 0;
G_MesureTemperatureON = 0;
// initialise les lettres au demarrage
G_BufferChar[0] = 'c';
G_BufferChar[1] = 'a';
G_BufferChar[2] = 'r';
G_BufferChar[3] = 'o';
DI(); // Desactive les interruptions
init_led_gpio(); // Initializes LED ports (Port A)
init_test_button_gpio(); // Initialize Test Button (Port C)
init_timer0(); // Intialize Timer-0
init_uart0(); // Intialize Uart
init_test_button(); // Initialize Test Button
SPI_init(); // Initialise le poprt SPI
DS1722_Initialize(); // Initialise le DS1722
init_timer0(); // Intialise Timer-0
T0CTL |= 0x80; // Active le gestionnaire dinterruption sur Timer 0
EI(); // Active les interruptions
while(1) // rafraichissement des afficheurs
{
AfficheLettre(G_BufferChar[0], 1);
AfficheLettre(G_BufferChar[1], 2);
AfficheLettre(G_BufferChar[2], 3);
AfficheLettre(G_BufferChar[3], 4);
}
} |
Partager