Bienvenue aux nouveaux arrivants sur FantasPic !
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
Modérateur : Jérémy
UART Write Text erreur !
UART Write Text erreur !
Jérémy a écrit :Tu veux l'afficher où ? avec un cordon sur hyperterminal ? ou sur un LCD ?
Car comme ca sur un LCD ca ne peut pas fonctionner
Simplement sur un terminal.
@Paul.
Ok j’essaierai tes méthodes et vous afficherait ma fenêtre compilation
@++
UART Write Text erreur !
Bonsoir a tous,
Bon il y a du mieux. J'arrive a avoir un resultat sur le terminal. Mais comme la dernière fois avec le capteur du thermomètre, j'obtiens des hiéroglyphe Je soupçonne encore une mauvaise configuration dans Project / Edit Project C'est bien ça ???
¨9ËÝ€õ+Ñ´:Š = Hello World \r\n
si non même résultat avec ton code paul. (hiéroglyphe).
voici quand même le contenue de ma fenêtre "Messages"
Et voici mon dernier code "fonctionnel"
Et l'image de Edit project
@++
Bon il y a du mieux. J'arrive a avoir un resultat sur le terminal. Mais comme la dernière fois avec le capteur du thermomètre, j'obtiens des hiéroglyphe Je soupçonne encore une mauvaise configuration dans Project / Edit Project C'est bien ça ???
¨9ËÝ€õ+Ñ´:Š = Hello World \r\n
si non même résultat avec ton code paul. (hiéroglyphe).
voici quand même le contenue de ma fenêtre "Messages"
Code : Tout sélectionner
0 1 mikroCPIC1618.exe -MSF -DBG -pP16F887 -DL -O11111114 -fo8 -N"D:\MikroC\scan adress i2c\scan_adress_i2c.mcppi" -SP"C:\Program Files (x86)\mikroC PRO for PIC\Defs\" -SP"C:\Program Files (x86)\mikroC PRO for PIC\Uses\P16\" -SP"D:\MikroC\scan adress i2c\" "scan_adress_i2c.c" "__Lib_Math.mcl" "__Lib_MathDouble.mcl" "__Lib_System.mcl" "__Lib_Delays.mcl" "__Lib_CType.mcl" "__Lib_CString.mcl" "__Lib_CStdlib.mcl" "__Lib_CMath.mcl" "__Lib_MemManager.mcl" "__Lib_Conversions.mcl" "__Lib_Sprinti.mcl" "__Lib_Sprintl.mcl" "__Lib_Time.mcl" "__Lib_Trigonometry.mcl" "__Lib_Button.mcl" "__Lib_Keypad4x4.mcl" "__Lib_Manchester.mcl" "__Lib_OneWire.mcl" "__Lib_PS2.mcl" "__Lib_Sound.mcl" "__Lib_SoftI2C.mcl" "__Lib_SoftSPI.mcl" "__Lib_SoftUART.mcl" "__Lib_ADC_88X.mcl" "__Lib_EEPROM.mcl" "__Lib_FLASH_RW.mcl" "__Lib_I2C_c34.mcl" "__Lib_PWM_c21.mcl" "__Lib_SPI_c345.mcl" "__Lib_UART_c67.mcl" "__Lib_PortExpander.mcl" "__Lib_CANSPI.mcl" "__Lib_CF.mcl" "__Lib_GlcdFonts.mcl" "__Lib_Glcd.mcl" "__Lib_LcdConsts.mcl" "__Lib_Lcd.mcl" "__Lib_RS485.mcl" "__Lib_S1D13700.mcl" "__Lib_T6963C.mcl" "__Lib_SPIGlcd.mcl" "__Lib_SPILcd.mcl" "__Lib_SPILcd8.mcl" "__Lib_SPIT6963C.mcl" "__Lib_EthEnc28j60.mcl" "__Lib_EthEnc24j600.mcl" "__Lib_TouchPanel.mcl"
0 1139 Available RAM: 352 [bytes], Available ROM: 8192 [bytes]
0 122 Compilation Started scan_adress_i2c.c
30 1509 Generated baud rate is 9615 bps (error = 0.16 percent) scan_adress_i2c.c
53 123 Compiled Successfully scan_adress_i2c.c
0 127 All files Compiled in 188 ms
0 1144 Used RAM (bytes): 5 (1%) Free RAM (bytes): 347 (99%) Used RAM (bytes): 5 (1%) Free RAM (bytes): 347 (99%)
0 1144 Used ROM (program words): 214 (3%) Free ROM (program words): 7978 (97%) Used ROM (program words): 214 (3%) Free ROM (program words): 7978 (97%)
0 125 Project Linked Successfully scan_adress_i2c.mcppi
0 128 Linked in 125 ms
0 129 Project 'scan_adress_i2c.mcppi' completed: 375 ms
0 103 Finished successfully: 05 mars 2018, 22:28:58 scan_adress_i2c.mcppi
Et voici mon dernier code "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 = 0b01110101; // oscilateur 8Mhz
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
UART1_Init(9600); // Initialize UART module at 9600 bps
Delay_ms(100); // Wait for UART module to stabilize
//////////////////////////////////////////////////////////////////////////////
//clignotement de la led en debut de code/////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
led = 1; // allume la led
delay_ms(250);
led = 0; // eteint la led
delay_ms(250);
led = 1; // allume la led
delay_ms(250);
led = 0; // eteint la led
delay_ms(250);
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);
}
}
Et l'image de Edit project
@++
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
UART Write Text erreur !
-
Jérémy
Administrateur du site- Messages : 2725
- Âge : 45
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Yop,
Franchement je ne vois pas d'erreur dans ton code !
L'astuce de Paul est trés bien mais , pour un petit test on peut s'en passer ! En tout cas elle dérange pas .
Je ne vois qu'un problème HArd !
Tout de même quelques idée jeter au PIF !
Fais clignoter ta led sur 1 seconde ainsi tu te rendras mieux compte si le temps est a peu prêt bon .
Tu as des librairies essaye de les enlever et de ne laisser que l'UART .
Ton cordon est bien à la bonne alimentation ? il en existe des 3.3V et des 5V ?
Essaye sans la masse du cordon !
Tu as bien réglé ton logiciel hyper terminal ? genre 9600 bauds/ 8n1 / valeur ANSII ? une photo ?
Courage
Franchement je ne vois pas d'erreur dans ton code !
L'astuce de Paul est trés bien mais , pour un petit test on peut s'en passer ! En tout cas elle dérange pas .
Je ne vois qu'un problème HArd !
Tout de même quelques idée jeter au PIF !
Fais clignoter ta led sur 1 seconde ainsi tu te rendras mieux compte si le temps est a peu prêt bon .
Tu as des librairies essaye de les enlever et de ne laisser que l'UART .
Ton cordon est bien à la bonne alimentation ? il en existe des 3.3V et des 5V ?
Essaye sans la masse du cordon !
Tu as bien réglé ton logiciel hyper terminal ? genre 9600 bauds/ 8n1 / valeur ANSII ? une photo ?
Courage
UART Write Text erreur !
Bonjour,
Effectivement ça peut être le problème, reste à voir OSCCON qui est régler à 8 Mhz, essai de diminuer la vitesse à 4 Mhz
Pour le C++ je sais pas, mais en ASM les registres TXSTA, SPBRG, RCSTA, RCREG sont importants.
A+
Jérémy a écrit :
Source du message Tu as bien réglé ton logiciel hyper terminal ?
Effectivement ça peut être le problème, reste à voir OSCCON qui est régler à 8 Mhz, essai de diminuer la vitesse à 4 Mhz
Pour le C++ je sais pas, mais en ASM les registres TXSTA, SPBRG, RCSTA, RCREG sont importants.
A+
UART Write Text erreur !
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour,
pour le test des leds , mets un delay de 1 à 2 seconde , de sorte que tu puisses verifier visuellemnt ce delai.
Si il est exact , FOSC est bien à 8MHZ
Nota : il est preferable de mettre ce test AVANT l'init de l' UART !
L'erreur en baud de 0,16% est largement acceptable par tous les terminaux PC.
apres OSCCON = 0b01110001; // oscilateur 8Mhz
rajoute un delay de 1 seconde ..pour etre sur que FOSC est bien stabilisée
ou mieux tester
avant de continuer
Rajoute dans l'init MCU :
meme si normalement l' UART_init initialise déja les pins TX et RX
Quelle est ta tension d'alim PIC16F877 VCC ?
Cordon USB/TTL (5V) ou USB/LTTL (3,3V) ?
essai apres l'init d l'UART :
pour le test des leds , mets un delay de 1 à 2 seconde , de sorte que tu puisses verifier visuellemnt ce delai.
Si il est exact , FOSC est bien à 8MHZ
Nota : il est preferable de mettre ce test AVANT l'init de l' UART !
L'erreur en baud de 0,16% est largement acceptable par tous les terminaux PC.
apres OSCCON = 0b01110001; // oscilateur 8Mhz
rajoute un delay de 1 seconde ..pour etre sur que FOSC est bien stabilisée
ou mieux tester
Code : Tout sélectionner
r
bit 2 HTS: HFINTOSC Status bit (High Frequency – 8 MHz to 125 kHz)
1 = HFINTOSC is stable
0 = HFINTOSC is not stable
while(OSCCON.HTS==0); // boucle en attendant de voir le flag à 1
avant de continuer
Rajoute dans l'init MCU :
Code : Tout sélectionner
TRISC=0b10111111; // RC7 en entree RC6 en Sortie
meme si normalement l' UART_init initialise déja les pins TX et RX
Quelle est ta tension d'alim PIC16F877 VCC ?
Cordon USB/TTL (5V) ou USB/LTTL (3,3V) ?
essai apres l'init d l'UART :
Code : Tout sélectionner
TXREG='A'; Delay_ms(10);
TXREG='B';Delay_ms(10);
TXREG='C';Delay_ms(10);
TXREG='D';Delay_ms(10);
TXREG=13;Delay_ms(10);
TXREG=10;Delay_ms(10);
UART Write Text erreur !
Bonjour, pourquoi ne pas faire l'essai avec un quartz 8MHz externe au PIC (Oscillateur HS dans la config.)
Je viens de faire l'essai avec le code suivant en MikroBasic.
Je viens de faire l'essai avec le code suivant en MikroBasic.
Code : Tout sélectionner
program MyProject
'Test UART avec Easy Pic5 et Tools/Usart terminal à 9600 bauds, PIC16F887.
main:
UART1_INIT(9600)
while true
UART1_WRITE_TEXT("Essai")
delay_ms(2000)
wend
end.
UART Write Text erreur !
Bonjour a tous,
Merci de vous penchez sur le sujet. Voici mon dernier code qui a le même résultat (hiéroglyphe)
le delay de la led est bon.
Pour ce qui est de la tension du pic je suis a 5v j'utilise les modules breadbord qui vont bien.
Pour le cordon USB/TTL il est sur 5v aussi c'est celui-là
Pareil quand je connecte le cordon j'ai besoin de brancher les 4 fils ? ou juste le Rx suffi ? (j'ai le même résultat en ne mettant que le blanc et en branchant le blanc, rouge, noir)
Car quand j'ajoute le rouge et noir sur ma breadbord, le montage s'auto-alimente avec le cordon, sans alim externe. C'est quoi le mieux ?
Pour ce qui est de ce petit bout de code :
Idem (hiéroglyphe). J'ai du zaper un truc c'est pas possible.
Bonjour pspic. Merci du conseil. Je ne sais pas si j'ai ça en magasin Mais j'y regarderai a l'occasion.(je n'ai jamais fait de montage avec un quartz externe)
Après dans le doute, j'ai un 16f628a qui traîne. Au moin pour tester un montage UART. Car il me faut un pic qui a UART et I2C
@++
Merci de vous penchez sur le sujet. Voici mon dernier code qui a le même résultat (hiéroglyphe)
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);
}
}
le delay de la led est bon.
Pour ce qui est de la tension du pic je suis a 5v j'utilise les modules breadbord qui vont bien.
Pour le cordon USB/TTL il est sur 5v aussi c'est celui-là
Pareil quand je connecte le cordon j'ai besoin de brancher les 4 fils ? ou juste le Rx suffi ? (j'ai le même résultat en ne mettant que le blanc et en branchant le blanc, rouge, noir)
Car quand j'ajoute le rouge et noir sur ma breadbord, le montage s'auto-alimente avec le cordon, sans alim externe. C'est quoi le mieux ?
Pour ce qui est de ce petit bout de code :
Code : Tout sélectionner
TXREG='A'; Delay_ms(10);
TXREG='B';Delay_ms(10);
TXREG='C';Delay_ms(10);
TXREG='D';Delay_ms(10);
TXREG=13;Delay_ms(10);
TXREG=10;Delay_ms(10);
Idem (hiéroglyphe). J'ai du zaper un truc c'est pas possible.
pspic a écrit :Bonjour, pourquoi ne pas faire l'essai avec un quartz 8MHz externe au PIC (Oscillateur HS dans la config.)
Je viens de faire l'essai avec le code suivant en MikroBasic.Code : Tout sélectionner
program MyProject
'Test UART avec Easy Pic5 et Tools/Usart terminal à 9600 bauds, PIC16F887.
main:
UART1_INIT(9600)
while true
UART1_WRITE_TEXT("Essai")
delay_ms(2000)
wend
end.
Bonjour pspic. Merci du conseil. Je ne sais pas si j'ai ça en magasin Mais j'y regarderai a l'occasion.(je n'ai jamais fait de montage avec un quartz externe)
Après dans le doute, j'ai un 16f628a qui traîne. Au moin pour tester un montage UART. Car il me faut un pic qui a UART et I2C
@++
UART Write Text erreur !
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
Pareil quand je connecte le cordon j'ai besoin de brancher les 4 fils ? ou juste le Rx suffi ? (j'ai le même résultat en ne mettant que le blanc et en branchant le blanc, rouge, noir)
Car quand j'ajoute le rouge et noir sur ma breadbord, le montage s'auto-alimente avec le cordon, sans alim externe. C'est quoi le mieux ?
evite d'utiliser le rouge (le +5V USB)
sur un montage simple , on peut se servir de l'alim du PICKIT2 ou
5V sur VDD 2em pin en partant du Repere =VPP
avec le Gnd 3em pin connecté aussi au VSS du PIC
si tu as 2 secondes de delay, no problemo avec FOSC 8Mhz .
tu n'as pas essayer avec TXREG .. sortie directe UART !
UART Write Text erreur !
Moi j'alimente en externe et branche uniquement le RX.
Le 16f887 à 2 VDD / VSS. J'alimente bien les 2 ???
Pour ce qui est de TXREG,si je les ai mis après uart_init pareil hiéroglyphe.
Pareil je suis bête, j'ai acheté. Un 16f887 alors que j'ai des 16f88 qui on UART et I2C Au pire je peux tester l'UART avec un 16f88. Par ce que la ça devient bizarre comme phénomène.
Je sais que j'avais eu le tour avec mon projet de thermomètre, et tu m'avais envoyé le fichier cfgsch après ça a fonctionné. J'ai pas de paramètres spécial à faire dans edit projet ?
@++
Le 16f887 à 2 VDD / VSS. J'alimente bien les 2 ???
Pour ce qui est de TXREG,si je les ai mis après uart_init pareil hiéroglyphe.
Pareil je suis bête, j'ai acheté. Un 16f887 alors que j'ai des 16f88 qui on UART et I2C Au pire je peux tester l'UART avec un 16f88. Par ce que la ça devient bizarre comme phénomène.
Je sais que j'avais eu le tour avec mon projet de thermomètre, et tu m'avais envoyé le fichier cfgsch après ça a fonctionné. J'ai pas de paramètres spécial à faire dans edit projet ?
@++
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 127 invités