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 ---
Forum général sur le langage C !

Modérateur : Jérémy

Thermomètre 16F684
jamdmnt
Débutant
Débutant
Messages : 42
Âge : 78
Enregistré en : septembre 2015
Localisation : pyrénées orientales

#61 Message par jamdmnt » mar. 16 sept. 2025 08:45

Bonjour,
@paulfjujo: le output_a=0x2B n'est pas très utile il ne sert qu'à l'initialisation. Pourquoi l'auteur initial a fait comme ça?
@retraite128: le réglage de la tension Ref doit être faite avec le pic sous tension, car les courants ne sont pas les mêmes à vide et pic alimenté. L'entrée Ref consomme très peu, mais suffisamment pour modifier les tensions.
Avec l'inter ouvert, la mesure est fonctionnelle, seul l'affichage est éteint 30s après l'ouverture du contact.
Je vais voir si j'ai un 16f684 pour tester avec un potar à la place du lm35.
A+

Thermomètre 16F684
RETRAITE128
Amateur
Amateur
Messages : 125
Enregistré en : août 2021

#62 Message par RETRAITE128 » mar. 16 sept. 2025 09:10

Bonjour,

Merci pour vos recherches, j'ai fait la mesure de Vref sans le PIC, là ça se régle, mais avec le PIC il ne reste que 10 mV, donc pas réglable.
J'attends la suite pour tester sur mon typon.

Alain

Thermomètre 16F684
jamdmnt
Débutant
Débutant
Messages : 42
Âge : 78
Enregistré en : septembre 2015
Localisation : pyrénées orientales

#63 Message par jamdmnt » mar. 16 sept. 2025 11:25

J'ai un 16f684. Je fais la maquette et je teste.
A+

Thermomètre 16F684
jamdmnt
Débutant
Débutant
Messages : 42
Âge : 78
Enregistré en : septembre 2015
Localisation : pyrénées orientales

#64 Message par jamdmnt » mar. 16 sept. 2025 18:42

J'ai fait la maquette. Et, je n'ai pas de difficultés pour régler VRef à 2,048V (avec un potar multitours de 22k), bien sûr avec le pic sous tension.
Je simule bien également le LM (avec un potar multitours de 10k) et à 280mV (pour 28°C).
Par contre l'affichage est fantasque. Mais, l'afficheur que j'ai depuis ....bien plus de 15ans, cafouille (2 digit sont HS)
Et je ne suis pas sûr que le pic (en pdip) n'a pas quelques ports HS.
Si les pins servant à l'icsp n'étaient pas utilisées, je pourrais mémoriser des mesures en EEprom, puis les consulter avec MPLAB IPE et ICD3.
Je vais regarder si je peux tester avec un pic ayant plus de pattes.
A+

Thermomètre 16F684
paulfjujo
Avatar de l’utilisateur
Maître
Maître
Messages : 3256
Âge : 75
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#65 Message par paulfjujo » mer. 17 sept. 2025 08:35

bonjour,


Ca ne dit pas pourquoi ça ne marche pas pour Alain ...

si la partie afficheur 7segm n'est pas OK en Hardware,
tu peux mettre un UART SOFT pour visualiser les mesures RA0 et RA1 + autre info ..

exemple pour 12F1840 ou 16F84
n'importe quelle pin en sortie peut etre utilisée
à voir si CCS supporte l'inclusion de parties en asm

exemple testé OK sur 12F1840 et 16F84 ...etc ..18F27K42 pour 3em UART

nota : PORTA ou LATA suivant le PIC
RRF ou RRCF suivant le PIC
9600 bauds pour 8Mhz (sinon modifier le delai bit: RSdelai2

Code : Tout sélectionner

//sbit TX3_Pin at LATA.B2;
sbit TX3_Pin_Direction at TRISA.B2;

unsigned char c3 absolute 0x0020;
unsigned char RS_Count;
unsigned char  RS_tmp;
unsigned char RS_Delay  ;

void UART3_Write(unsigned char cc) ;
void UART3_Write_Text(char * t) ;
void UART3_Write_CText(const char * t);

void UART3_Write_CText(const char *txt3)
 {
   while (*txt3)
     {
     UART3_Write(*txt3++);
     }
}

void UART3_Write_Text(unsigned char *T)    // at adress  0x002 taille 42 bytes
{
  while(*(T)>0)     // verif sur VBRAY en mode ASCII
   {
    UART3_Write(*(T++));   // c3 variable globale
   }
}

void CRLF3()
{
 UART3_Write(CR);
 UART3_Write(LF);
}


void UART3_Write(unsigned char cc)      // 16MHz 19200 bauds
{
    c3=~cc;    // complement du caractere !
    // avec TX3_PIN => RA2
  _asm{
    RSsend2:
        movlw   8                ; 8 bits
        movwf   _RS_Count        
; compteur de bits envoyés
        bcf     LATA
,2            ; bit de start
        call    RSdelai2        
; tempo
       
//   rrf  _c1,f        ; on recupere dans C le bit à envoyer
       //  syntaxe à revoir en fonction du PIC utilisé   rrcf avec 18F87J50
    L00:
        rrf    _c3,1        ; on recupere dans C le bit à envoyer
        btfsc   STATUS
,C        ; bit à envoyer = 1 ?
        goto    L10                ; oui
        bsf     LATA
,2          ; sinon 0
        goto    L20                
; on continue sur la tempo
    L10
:
        bcf     LATA,2          ; bit à 1
    L20
:
        call    RSdelai2                ; tempo
        decfsz  _RS_Count
,1        ; on decremente le compteur de bits envoyés
        goto    L00                
; on continue sur les bits suivants
        bsf     LATA
,2         ; bit de stop
        call    RSdelai2        
; tempo pour bit de stop
         call    RSdelai2        
; tempo pour bit de stop
        goto    LA1

    RSdelai2
:                 // 52µS / bit pour 19200 bauds ou 104µS pour  9600bds
         MOVLW 28 ;
         MOVWF _RS_tmp ;
    RS00:
         NOP;                ; fait parti de la tempo!
         NOP;
         NOP;
         NOP;
        // NOP;
         DECFSZ _RS_tmp,;
         GOTO   RS00 ;
         NOP;
         NOP;
         NOP;
         RETURN ;

    LA1:    nop;
   }
 }
 
Aide toi, le ciel ou FantasPic t'aidera

Thermomètre 16F684
RETRAITE128
Amateur
Amateur
Messages : 125
Enregistré en : août 2021

#66 Message par RETRAITE128 » mer. 17 sept. 2025 10:41

Bonjour à tous,

Comme vous le dites si bien je ne vois pas pourquoi ça ne fonctionne pas chez moi.
J'en suis arrivé à douter de mes 4 PIC neufs, j'ai fais la demande d'échange aurpès du vendeur, j'attends les remplaçants.
Comme je suis novive, je pensais aussi peut être à un souci à la programmation.
J'utilise WinPic800 pour les programmer.
J'ai vu qu'il y avait pour ce PIC une plétore de fusibles, dites moi si éventuellemnt ça pourrait être une piste, si besoin je peux vous faire une photo de cette partie.
Merci encore pour votre travail.

Amicalement,

Alain

Thermomètre 16F684
gwion
Expert
Expert
Messages : 1121
Enregistré en : février 2022

#67 Message par gwion » mer. 17 sept. 2025 11:27

4 PIC neufs HS je n'y crois absolument pas.
Les fusibles sont fixés dans le programme donc si rien ne vient les modifier dans le logiciel de programmation il n'y a pas de raison que cela influe sur le résultat.
Les tests sont fait sur une breadboard ? Si c'est le cas attention aux connexions qui ne sont pas toujours correctes. Et aussi aux jumpers qui parfois sont mal sertis.

Pour vérifier le PIC il faudrait un mini programme qui fasse clignoter une led sur les ports suspects.

Thermomètre 16F684
RETRAITE128
Amateur
Amateur
Messages : 125
Enregistré en : août 2021

#68 Message par RETRAITE128 » mer. 17 sept. 2025 11:57

Bonjour,

Ci-joint photo de ma maquette, je suis minutieux en ce qui concerne la réalisation, donc pas de souci de ce côté.

J'avais évoqué les PIC, car lors de la programmation j'avais remarqué qu'à la lecture de ceux-ci, vierges, les case mémoire n'étaient pas à 0000 mais à 3FFF, comme quand on les a effacés.

A vous lire,

Cordialement,

Alain
DSCN6361.JPG
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

Thermomètre 16F684
gwion
Expert
Expert
Messages : 1121
Enregistré en : février 2022

#69 Message par gwion » mer. 17 sept. 2025 13:17

Un PIC neuf n'est pas initialisé à 0x00, les tiens sont OK.

Thermomètre 16F684
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1937
Âge : 67
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#70 Message par Gérard » mer. 17 sept. 2025 14:06

Ecris un programme simple pour tester :

Tu définis quel port est LED.

Début :
LED = 1
Tempo 500ms
LED = 0
Tempo 500ms
Goto Début

Syntaxe en fonction de ton langage de programmation.
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.


Retourner vers « Langage C »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 2 invités