toujours dans ma quête de faire fonctionné un écran lcd en i2c voir topic ici . paulfjujo m'a gentiment donner un code qui permet de scaner les appareils i2c connecter sur mon 16f887.
J'ai donc décidé par propreté de créer un nouveau projet qui aura pour but unique de scanner les adresses i2c sur le pic 16f887.
Le problème, c'est que je n'arrive même pas a affiché un simple hello word en UART. J'ai utilisé le code donner dans l'aide de mikroc mais rien.
J'ai donc comme beaucoup m’ont déjà démontrer sur ce forum. mis une led qui clignote en fin de code, histoire de faire entre guillemet un debug.
Voici le souci que je rencontre. Si je comment la phrase 11 du code, qui correspond a : UART1_Write_Text("Hello word"); la led clignote bien. Mais des que je la "décommante", la led ne fonctionne plus. Ou ai-je fait l'erreur ?
Problème résolu le 07/03/2018. ça venait du microcontrôleur.
Voici mon code final fonctionnel:
Code : Tout sélectionner
sbit led at RA4_bit; // donne un nom a la patte RA4 du microcontorleur "led"
// procedure de paulfjujo pour les pic 16F
void UART1_Write_CText(const char *txt)
{
while (*txt)
{
UART1_Write(*txt++);
// Delay_us(500);
}
}
void main() {
OSCCON = 0b01110001; // oscilateur 8Mhz
while(OSCCON.HTS==0); // boucle en attendant de voir le flag à 1
C1ON_bit = 0; // Disable comparators
C2ON_bit = 0;
ANSEL = 0; // Configure AN pins as digital
ANSELH = 0;
TRISA = 0x00; // tout les port A en sortie. Entrée = 1, sortie = 0
TRISC=0b10111111; // RC7 en entree RC6 en Sortie
//////////////////////////////////////////////////////////////////////////////
//clignotement de la led en debut de code/////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
led = 1; // allume la led
delay_ms(2000);
led = 0; // eteint la led
delay_ms(2000);
led = 1; // allume la led
delay_ms(2000);
led = 0; // eteint la led
delay_ms(2000);
UART1_Init(9600); // Initialize UART module at 9600 bps
Delay_ms(100); // Wait for UART module to stabilize
while (1) { // Boucle infini
UART1_Write_CText("Hello World \r\n"); // on appel la procedure plus haut
led = 1; // allume la led
delay_ms(1000);
led = 0; // eteint la led
delay_ms(1000);
}
}D'avance merci.
@++

