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
paulfjujo
Avatar de l’utilisateur
Maître
Maître
Messages : 3256
Âge : 75
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#81 Message par paulfjujo » ven. 19 sept. 2025 21:02

bonsoir,

Reste à verifier si une "Errata" n'est pas dispo pour ce PIC16684
ou un bug du compilateur CCS ...
quelle version CCS utilisée ?

-------
je continue ici, car il me semble que le probleme de fond est la configuration du registre Comparator
(je n'ai pas de 16F84 pour le verifier)


REGISTER 8-1: CMCON0: COMPARATOR CONFIGURATION REGISTER...... page 73 datasheet
CMCON0 — COMPARATOR CONFIGURATION REGISTER (ADDRESS: 19h)
R-0 R-0 R/W-0 R/W-0 R/W-0 R/W-1 R/W-1 R/W-1
C2OUT C1OUT C2INV C1INV CIS CM2 CM1 CM0
bit 7 bit 0
bit 2-0 CM<2:0>: Comparator Mode bits (See Figure 8-5)
000 = Comparators off. CxIN pins are configured as analog
001 = Three inputs multiplexed to two comparators
010 = Four inputs multiplexed to two comparators
011 = Two common reference comparators
100 = Two independent comparators
101 = One independent comparator
110 = Two common reference comparators with outputs
111 = Comparators off. CxIN pins are configured as digital I/O
bit 2 CM2:CM0: Comparator Mode bits



FIGURE 9-3: COMPARATOR I/O OPERATING MODES page 75 datasheet
Figure 9-3 shows the Comparator modes and CM2:CM0 bit settings
Comparators Reset (POR Default Value)
CM2:CM0 = 000

A
A A comme Analog
RA0 et RA1 seraient en Analogique
-----
Comparators Off
CMCON0=7 au reset !
D
D D comme Digital !
RA0 et RA1 seraient en Digital


contradiction entre la definition Etat au Reset
fig 9.3 CM2:CM0=000 POR default value
et
fig 9.1 bitCM2:CM0 à 1 bit set ( R/W 1)
donc CM2:CM0=111


16F684_comparator.jpg


la fonction CCS n'est pas claire (pour moi)
ressayer plutot avec une commande ASM
pour initialiser CMCON0
verifier si il faut 000 ou 111 ( comme d'ailleurs sur certains autres PIC !)




https://forum.allaboutcircuits.com/threads/cant-write-to-port-a-16f684.64378/
I just remembered to be able to use port a as digital IO you have to disable the comparator
and analog input from CMCON0 register and ANSEL register.


ce qui laisse supposer ENable comparator et enable ANSEL, pour un usage RA0 et RA1 en Ana
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Aide toi, le ciel ou FantasPic t'aidera

Thermomètre 16F684
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2886
Enregistré en : juillet 2016
Localisation : Terre

#82 Message par Temps-x » sam. 20 sept. 2025 18:20

Bonjour paulfjujo, et tout le monde

paulfjujo a écrit :Source du message la fonction CCS n'est pas claire (pour moi)
ressayer plutot avec une commande ASM
pour initialiser CMCON0


:-D On n'a plus confiance au C à ce que je vois.... :lol:

Comme je suis bon prince, j'ai écrit un programme pour tester les ports de ce Pic16F684 en ASM avec fréquence de 4 Mhz(sans quartz)

Le programme fait répétitivement : allumage de tous les ports pendant 1 seconde, et extinctions de tous les ports pendant 1 seconde.

Faut que je regarde dans le lot de mes Pics, car je crois que je n'ai pas ce Pic16F684, ça fait drole de reprendre ASM après un bon moment d'arrêt.

Voici le schéma, pour le branchement des LED, il fonctionne en simulation

Test.jpg


Fichier code en ASM, ainsi que le fichier compilé téléchargement ICI

==> A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Modifié en dernier par Temps-x le sam. 20 sept. 2025 20:04, modifié 2 fois.
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

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

#83 Message par paulfjujo » sam. 20 sept. 2025 18:55

Temps-x a écrit :
:-D On n'a plus confiance au C à ce que je vois.... :lol:


il existe moulte versions de compilateur C ( C++ , C# , mikroC ..etc..)
:sifflotte: dont ce Double C special C.C.S.

Temps-x a écrit :Voici le schéma, pour le branchement des LED, il fonctionne en simulation


:!!: et je n'ai pas confiance envers les Simulateurs !

il faut que ça fonctionne dans le monde réel .

Qu'as tu mis dans la config du CMCCON0 pour CM2:CM0 ?
000 ou 111 dans le cas tests sortie leds

une autre version avec les voies analogiques , car c'est plutot sur ce point là que ça coince ..
et config CM2:CM0 ?
mais la simulation ne pourra rien monter

oops ....pas du Temps X mais du Temps Reel ...
Aide toi, le ciel ou FantasPic t'aidera

Thermomètre 16F684
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2886
Enregistré en : juillet 2016
Localisation : Terre

#84 Message par Temps-x » sam. 20 sept. 2025 19:09

Bonsoir paulfjujo,

paulfjujo a écrit :Source du message Qu'as tu mis dans la config du CMCCON0 pour CM2:CM0 ?
000 ou 111 dans le cas tests sortie leds


Sur la datasheet que j'ai du regarder de bas en haut, il préconise 111, ce qui nous fait en vrai langage

Code : Tout sélectionner



;********************* configuration du registre CMCON0 & CMCON1  en bank 0 ********************

      BANKSEL CMCON0                      ; passer en bank 0

      movlw B
'00000111'

      movwf CMCON0                        ; éteindres les comparateurs, les mettres en digital I/O                
      movwf CMCON1 
      


paulfjujo a écrit :Source du message :!!: et je n'ai pas confiance envers les Simulateurs !


Tu as tout fait (fée) raison de ne pas avoir confiance envers les simulateurs, Moi non plus je ne leur fais pas confiance, mais ça peut aider.

==> A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

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

#85 Message par jamdmnt » sam. 20 sept. 2025 20:28

Bonsoir à tous...et toutes(peu-être y a t-il des dames qui nous lisent!!)
Le 684 que j'ai testé, a du me servir en....2001. A l'époque, j'avais mis un ? sur ce pic parce qu'il "cafouillait", mais son p'tit frère fonctionnait très bien sur le circuit où il était monté, l'allumage/extinction auto des feux sur la twingo de madame (elle oubliait quelques fois d'éteindre les feux le soir, et...le lendemain matin, batterie à plat). Ce circuit utilisait A0 en entrée ana et A1 en Vref, et il a fonctionné des années jusqu'à la mise à la casse de la voiture.
A l'époque, je programmais en asm, et quelques années plus tard, pour refaire le prog d'un four, je suis passer à CCS en C, car en asm ça devenait laborieux avec ce prog de 5000 lignes de C (certes bien aéré).
Je ne rencontre pas de PB avec CCS, et proteus est je trouve bien utile pour la mise au point d'un prog, et on peut vérifier tous les registres lors de l'exécution du .cof du prog.
Il est évident que le prog tourne en simu, il faut le faire en réel, et bien sûr il y a quelques fois des surprises.
A+
Jacques

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

#86 Message par paulfjujo » sam. 20 sept. 2025 20:39

Temps-x a écrit :

Code : Tout sélectionner



;********************* configuration du registre CMCON0 & CMCON1  en bank 0 ********************

      BANKSEL CMCON0                      ; passer en bank 0

      movlw B
'00000111'

      movwf CMCON0                        ; éteindres les comparateurs, les mettres en digital I/O                
      movwf CMCON1 
      




donc il faudrait mettre CMCON0 à zero ..pour avoir RA0 et RA1 en analogique (et ANSEL active)

... wait and see
Aide toi, le ciel ou FantasPic t'aidera

Thermomètre 16F684
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2886
Enregistré en : juillet 2016
Localisation : Terre

#87 Message par Temps-x » sam. 20 sept. 2025 21:17

J'espére que ça reponds à ta question

paulfjujo a écrit :Source du message donc il faudrait mettre CMCON0 à zero ..pour avoir RA0 et RA1 en analogique (et ANSEL active)


:roll: Oui, mais si tu veux des entrées/sorties il faut mettre 111 comme pour des led :-) , dans tous les cas les comparateurs sont désactivé si les trois bits se retrouve toutes à zéro ou un

CMCON0 &amp; CMCON1.png

info.png


Code ASM de la datasheet
Code numérique.png


==> A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

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

#88 Message par RETRAITE128 » dim. 21 sept. 2025 10:54

Bonjour à tous,

Merci à Jacques pour son programme de test qui me dit que tout va bien ppour mes PIC qui clignote sans souci.
A plus,
Amicalement,
Alain

Thermomètre 16F684
venom
Avatar de l’utilisateur
Expert
Expert
Messages : 1614
Âge : 40
Enregistré en : avril 2016
Localisation : Klyntar
Contact :

#89 Message par venom » dim. 21 sept. 2025 13:38

Temps-x a écrit ::-D On n'a plus confiance au C à ce que je vois.... :lol:


Temps-X n'en manque pas une a ce que je vois :sifflotte: :lol:

N'empêche que ça t'a permis de te remettre dans l'ASM grâce au C :roll: 8-)







@++
Mon site web
Mon discord : venom#4888

Thermomètre 16F684
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2886
Enregistré en : juillet 2016
Localisation : Terre

#90 Message par Temps-x » dim. 21 sept. 2025 18:50

Bonsoir venon, et tout le forum,

venom a écrit :Source du message N'empêche que ça t'a permis de te remettre dans l'ASM grâce au C :roll: 8-)


paulfjujo a écrit :Source du message la fonction CCS n'est pas claire (pour moi)
ressayer plutot avec une commande ASM
pour initialiser CMCON0


Psf.... :roll: c'est à cause de paulfjujo .... il faut bien trouver une excuse, pour une fois ça ne vient pas de Gérard.... :lol:


==> A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:


Retourner vers « Langage C »

Qui est en ligne

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