ABCelectronique : portail d'information dans le domaine de l'électronique
Home » Diverses rubriques » Archive forum sujets+corp
 
     
   Que faire d'un ancien PC?  
Slt! J'ai plusieurs PC anciens (286,386,486 et Pentium 100) et je voudrai savoir ce qe je peu en faire (domaine de l'audio, de la progralmation,...)
Je pense notament a les modifier par exemple pour en faire une platine de décompression mp3.
Toute idée,info est la bienvenue (ne vous limitez pas a la platine mp3 c'était juste un exemple)
Merci!!

Numéro de l'article: 113703   |  De: Nesquik   |  Date: 2004-06-28 15:04:49
   RE: Que faire d'un ancien PC?
un centre de controle d'appareils ménagers (gradateurs pour lampes, volets électriques, cafetière), ou pour commander facilement des moteurs (robots)
pour les mp3, le pentium 100 est un minimum, au moins pour la qualité de la carte audio si elle est intégrée
++

Numéro de l'article: 113715   |  De: TiTi   |  Date: 2004-06-28 15:16:46
   RE: Que faire d'un ancien PC?
Tu peux faire plein de trucs, un cluster (les PC sont tous reliés entre eux et font des calculs compliqués tous ensemble en se divisant le travail), pour coder du DivX par exemple, d'où du décodage MP3 si tu veux, mais bon...

Il y a tellement de choses à faire, que je ne sais pas quoi te dire !

Numéro de l'article: 113718   |  De: progfou   |  Date: 2004-06-28 15:18:54
   RE: Que faire d'un ancien PC?
Salut les vieux PC a partir du 386 et s'il ont au mini 4Mo de RAM sont parfaitement recyclable avec linux... un petit noyeau... une gestion d'init 3 uniquement et c fini apres tu en fait ce que tu veu un lescteur MP3 , un routeur , un serveur etc etc...


Numéro de l'article: 113720   |  De: Tux   |  Date: 2004-06-28 15:20:19
   RE: Que faire d'un ancien PC?
Vu qu'en faire un aquarium est difficile (vu le nombres de trous), Tu pourrais en faire une sorte d'automate programmable. Il y a quelques années, elektor avait sortie un montage avec, je crois, 32entrées et 32 sorties le tout piloté via une RS232. c'est le numero 276 de juin 2001 page 66. Il te suffit d'adapter les niveaux en fonction de ce que tu désire commander et c'est parti. Une idée comme une autre.

Numéro de l'article: 113726   |  De: Richard   |  Date: 2004-06-28 15:38:55
   RE: Que faire d'un ancien PC?
envoies les en afrique, y a plein d'aso qui les recoltent


Numéro de l'article: 113733   |  De: jpascal   |  Date: 2004-06-28 15:58:26

   Fusible - comprends pas l'indication  
Lu ts !

Bon, j'ai un fusible 250V/2.5A qui a claqué dans mon alim 24V, j'ai pas de fusible identique à disposition, mais j'ai deux questions :
- Puis-je mettre un fusible claquant un peu au-dessus (3A) ou vaut-il mieux en mettre un un peu plus petit (2A)...
- J'ai trouvé deux fusibles dont l'indication est F3,15L 250V
Je sais que le F est là pour fast, mais le L me gêne...
Est-ce un fusible 3.15A ?

Numéro de l'article: 113713   |  De: progfou   |  Date: 2004-06-28 15:14:33
   RE: Fusible - comprends pas l'indication
un plus gros sinon ca claquera tout le temps. Désolé, niveau symbole j´en sais rien du tout

Numéro de l'article: 113716   |  De: Eric Leblanc   |  Date: 2004-06-28 15:17:25
   RE: Fusible - comprends pas l'indication
à mon avis pas de pb, c'est un fusible rapide 3.15A classique...
++

Numéro de l'article: 113724   |  De: TiTi   |  Date: 2004-06-28 15:37:28
   RE: Fusible - comprends pas l'indication
fuse 3.15 A low

Numéro de l'article: 113731   |  De: jpascal   |  Date: 2004-06-28 15:57:20
   RE: Fusible - comprends pas l'indication
Merci !
F c'est pa fuse, c'est fast ;)
Sinon, je crois tout le monde, mais low pour quoi exactement ?

Numéro de l'article: 113736   |  De: progfou   |  Date: 2004-06-28 16:12:19
   RE: Fusible - comprends pas l'indication
ben low c est le contraire de fast
:-)


Numéro de l'article: 113771   |  De: jpascal   |  Date: 2004-06-28 17:01:37
   RE: Fusible - comprends pas l'indication
Euh, je comprends plus rien, de toutes façons, j'ai mis et ça marche ;)

Merci quand même !

Numéro de l'article: 113777   |  De: progfou   |  Date: 2004-06-28 17:17:56
   RE: Fusible - comprends pas l'indication
Bonsoir

LOW n'a rien a voir avec la rapidité du fusible, mais concerne le pouvoir de coupure du fusible. En l'occurence LOW indique que le fusible peut couper 35A ou 10 fois le courant nominal, le plus grand des deux. Il y a aussi le E (Enhanced) ou le H (high).
A+

Numéro de l'article: 113778   |  De: Michel95   |  Date: 2004-06-28 17:20:40
   RE: Fusible - comprends pas l'indication
la c est moi qui comprends plus, meme si j ai un doute

Numéro de l'article: 114151   |  De: jpascal   |  Date: 2004-06-29 13:34:33

   PIC18F où les trouver ???  
je cherche un revendeur de PIC18F (248 ou 258). Quelqu'un en connaitrait il un ?


Merci

Numéro de l'article: 113725   |  De: Seb   |  Date: 2004-06-28 15:37:41
   RE: PIC18F où les trouver ???
pourquoi tu n'utilise pas le site de Microchip pour avoir des samples?

Bertrand

Numéro de l'article: 113727   |  De: Bertrand   |  Date: 2004-06-28 15:39:09
   RE: PIC18F où les trouver ???
Pour information, il existe un noyau temps réel pour PIC18 : PICos18.
Il est dispo en GPL sur le site www.picos18.com
les concepteurs de ce noyau sont disponibles sur www.picos18.com/forum pour répondre à vos questions et faire le support.

PICos18 est un noyau temps réel basé sur la norme OSEK. Il est préemptif à la différence de beaucoup d'autre noyau ou c'est la tache qui doit rendre la main.
Le dévelopement est très simplifié. cela revient à faire des assemblage de "briques logiciel" (code pour du SPI, I2C, LCD, RS, CAN, etc..)

Il utilise le compilateur C18 de Microchip qui est téléchargeable sur leur site. La version de demo est complète et réinstalable!

Bertrand

Numéro de l'article: 113728   |  De: Bertrand   |  Date: 2004-06-28 15:48:29
   RE: PIC18F où les trouver ???
Le problème c'est que tous les revendeurs repertoriés sur le site de microchip sont des grosssites, donc pas d'achat à l'unité :(

PS : C'est aussi à cause de PIC18 que je veux utiliser ce uC.

Numéro de l'article: 113743   |  De: Seb   |  Date: 2004-06-28 16:31:09
   RE: PIC18F où les trouver ???
tu veux dire PICos18?

tu peux trouver le 18F452 ( pin compatible avec le 16F877) chez Lextronic
voir vers le bas de cette page http://www.lextronic.fr/mikro/piceasy.htm

Bertrand

Numéro de l'article: 113745   |  De: Bertrand   |  Date: 2004-06-28 16:35:20
   RE: PIC18F où les trouver ???
salut
tu trouve aussi le 18F452 chez sélectronic mais plus cher (15€)
et les 18F442/448 chez ECE

Numéro de l'article: 113756   |  De: Tgq   |  Date: 2004-06-28 16:49:49
   RE: PIC18F où les trouver ???
Oui c'est ce que je voulais dire mais je fatigue.

Merci beacoup pour l'adresse :)

Numéro de l'article: 113767   |  De: Seb   |  Date: 2004-06-28 16:58:00
   RE: PIC18F où les trouver ???
et radiospares, farnell, etc...
suffit de chercher au bon endroit ;)

Aurélien

Numéro de l'article: 113886   |  De: Aurélien   |  Date: 2004-06-28 23:04:36
   RE: PIC18F où les trouver ???
Pour info, la version 1.22 de PICos18 est disponible.
Cette version permet l'utilisation de l'ICD2 pour le développement.

Bertrand
www.picos18.com

Numéro de l'article: 117770   |  De: Bertrand   |  Date: 2004-07-10 19:16:41
   Bibliotèque C
Bonjour
Je programme des PIC18F452 en C sous PICC18 de HT et je recherche des bibliotèques de fonction telles que la gestion des timers, PWM voir des bootloaders. Toutes infos m'intéresse
Merci

Numéro de l'article: 118388   |  De: SebF   |  Date: 2004-07-13 10:18:59
   RE: Bibliotèque C
Pourquoi ne pas utiliser un compilateur JAL gratuit avec des bibliothèques très fournis (une communauté de développeurs très active).

http://www.voti.nl/jal/index_1.html

http://www.geocities.com/vsurducan/electro/PIC/lib.html


Numéro de l'article: 118716   |  De: donsamnet   |  Date: 2004-07-14 10:35:30

   gradateur a PIC  
bonjour.

je realise actuellement un gradateur monophasé a angle de phase. Les impulsions envoyées aux thyristors sont faites par un PIC.

je souhaiterai avoir des infos sur 2 points :
o je souhaite une regulation en tension et a un seuil de tension. Comment calculer mon regulateur ? j'ai du mal a me representer le systeme et a le "mettre en equation". En gros le pic fait varier l'angle d'amorcage des thyristors en fonction de la consigne de tension et de la mesure. Si le courant depasse le seuil, les thyristors arretent de conduire.

o je recherche des infos sur l'isolation galvanique que je dois mettre entre mon circuit de commande et mes thyristors. Mes impulsions sont donc creees par le PIC, quoi mettre entre celui ci et les thyristors ? optocoupleur? transformateur d'impulsion ?


merci d'avance :)

Numéro de l'article: 113737   |  De: ben   |  Date: 2004-06-28 16:20:38
   RE: gradateur a PIC
Pour la deuxieme partie de ta question, j'obterais pour des opto triac (MOC3021). Ils ont le grand avantage d'etre commandé comme une led et ne demande pas d'alimentation pour le coté 220v car ils prennent leur energie directement du secteur (j'en ai une quarantaine qui tournent ici sans le moindre accro depuis 5 ans.)
Il faut juste que le pic puisse conduire le courant de led (15ma si je me souviens bien).

Numéro de l'article: 113741   |  De: Richard   |  Date: 2004-06-28 16:27:45
   RE: gradateur a PIC
pour un thyristor, c'est un optocoupleur qu'il faut :)

Numéro de l'article: 113746   |  De: Manu   |  Date: 2004-06-28 16:36:11
   RE: gradateur a PIC
Juste, Manu, il est vrai que dans ce genre d'application, on utilise souvent des triacs et non des thyristors (on controle alors les deux phases).
Note que, de prime abord, je ne vois pas la raison pour laquelle un thyristor ne pourrait pas etre amorcé par un opto-triac (peut etre avec une diode en plus) mais faudrait y réfléchir...
Le plus simple serait de prevoir des triacs au lieu des thyristors (simple suggestion)

Numéro de l'article: 113763   |  De: Richard   |  Date: 2004-06-28 16:55:26
   RE: gradateur a PIC
reguarde dans les note d'aplication de chez microchip dans la famille des PIC12, il y a une apllication de ce style, ils n'utilise pas d'isolation, pas de transfo...

Numéro de l'article: 113768   |  De: flo   |  Date: 2004-06-28 16:58:42
   RE: gradateur a PIC
Salut,
Pour la première question, c'est l'angle d'amorcage qui va te permettre de connaître la tension moyenne.(plus tu retardes le déclenchement du thyristor par rapport au "point zéro secteur" plus la tension moyenne sera faible).
Je ne vois pas comment on peut arriver à connaître la tension moyenne avec un thyristor, car le thyristor travaille en tout ou rien.(quelqu'un pour m'éclairer?)
Pour le dépassement de courant, il faut utilser un AOP en comparateur.(l'arrêt de la conduction du thyristor ne ce faisant alors qu'au passage par zéro suivant).
Si le montage est dans un boitier il est possible de commander directement les thyristors sans passer par des optocoupleurs et même sans transformateur(alim. à base de Zener).
Une condition à respecter c'est d'avoir des thyritors à faible courant de gachette; compatible avec les sorties du µC).
David.

Numéro de l'article: 113780   |  De: David   |  Date: 2004-06-28 17:25:57
   RE: gradateur a PIC
Salut
------

Sur mon site, page "domocan", tu as un gradateur à 18F.
Il y a dans la doc les chiffres qui font la relation entre le délai de retard et la tension efficace qui en résulte.

J'ai également fait un petit logiciel qui calcule les retards.

J'ai aussi la formule quelque part (intégrale), mais je n'arrive plus à remettre la main dessus.

A+
Bigonoff


Numéro de l'article: 113867   |  De: Bigonoff   |  Date: 2004-06-28 21:53:06
   RE: gradateur a PIC
merci a tous pour ces reponses.

Deja, mon appli est developpée pour etre utilisée dans un milieu industriel (moi je ne fais que la carte de commande). Je n'ai donc pas le choix d'utiliser autre chose que des thyristors, et je pense que l'isolation est necessaire.
Sinon, pour ce qui est de la mesure de tension, celle ci est faite bien en aval des thyristors (sur la machine, la tension sinusoidale est redressée pour obtenir une tension continue - en faisant varier l'angle d'amorcage, je fais varier cette tension continue).

Je vais voir de plus pres tout ce que vous m'avez dit :)

Numéro de l'article: 113971   |  De: ben   |  Date: 2004-06-29 10:06:04
   RE: gradateur a PIC
Cela change tout ce que tu nous dis là!
Tu n'as parlé nulle-part d'une tension redressée!
On ne parle plus d'un gradateur, mais peut-être d'un variateur de vitesse pour moteur?
David.

Numéro de l'article: 113992   |  De: David   |  Date: 2004-06-29 10:33:50
   RE: gradateur a PIC
ben je sais pas exactement comment qualifier le montage. La tension sinusoidale est "coupée" par mes thyristor, puis elle est transformée et redressée. Le but est d'obtenir effectivement une tension continue variable. est ce une alim a decoupage ? un variateur de vitesse ?

Numéro de l'article: 114084   |  De: ben   |  Date: 2004-06-29 11:58:36
   RE: gradateur a PIC
Est-ce les thyristors qui redressent la tension sinusoïdale ?
Le but du montage est d'avoir une tension continue et variable à partir d'une tension fixe sinusoïdale ?
Donc tu veux réaliser un redressement commandé.
David.

Numéro de l'article: 114105   |  De: David   |  Date: 2004-06-29 12:22:35
   RE: gradateur a PIC
non, ce n'est pas les thyristors qui redressent la tension sinusoidale. La tension est d'abord transformée puis redressee par un pont de diode.

effectivement le but est d'avoir une tension continue variable en fonction de la tension secteur (en realité triphasé)

on m'a demandé de faire la partie commande, mais le gars n'y connait rien en electronique .....

Numéro de l'article: 114121   |  De: ben   |  Date: 2004-06-29 12:50:21
   RE: gradateur a PIC
Alors c'est mal barré.
J'ai realisé un convertisseur 220V~ monophasé en 220V~ triphasé 50Hz, mais cela n'est pas aussi simple que ça!
Tous les facteurs imaginables sont succeptibles de modifier en profondeur la réalisation tant software que hardware!
La meilleur solution consiste à s'informer chez Microchip à l'adresse ci-dessous :
http://microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1490&filterID=421
David.

Numéro de l'article: 114214   |  De: David   |  Date: 2004-06-29 14:24:57
   RE: gradateur a PIC
bon, j'ai repondu sur l'autre sujet.

Je me suis apparement mal fait comprendre. J'ai bien du triphasé à la base, et j'obtiens une tension continue variable, en fonction du retard des thyristors.


Sinon, ca m'interesse de savoir comment tu as fait pour faire une alim 3~ 220V a partir du 220 V monophasé. En effet, je n'ai que du 220 et j'ai besoin de triphasé ! pour l'instant, je n'en suis qu'a la phase de developpement donc ca ne pose pas de pb, mais la question risque de se poser d'ici un moment :)

Numéro de l'article: 114288   |  De: ben   |  Date: 2004-06-29 16:11:59
   RE: gradateur a PIC
Les bases de la réalisation sont sur le site ci-dessus.
J'ai adapté les programmes pour travailler avec un PIC16F877, si tu veux le code source, je veux bien te le fournir. Le PCB par contre si je te le donne, tu ne pourras pas en faire grand chose car il est spécialement fait pour une machine à bois avec un radiateur spécifique. Le PCB est à faire en fonction de la charge, du radiateur, du pont de diodes, ....(bref généralement spécifique à l'application)
David.

Numéro de l'article: 114306   |  De: David   |  Date: 2004-06-29 16:38:06
   RE: gradateur a PIC
Bonjour
J'ai un thyristor 2n1778, et j'aimerai bien savoir comment le tester car dans la plus part des revus les test par le multimètre n'est pas fiable.
Merci d'avance

Numéro de l'article: 118904   |  De: adel   |  Date: 2004-07-15 10:36:04

   CAN/CNA  
Bonjour a tous!!

J'ai pu grace a ce forum obtenir de nombreuse information et constater la puissance intellectuel des personnes présentes sur celui ci.

C'est pourquoi j'ai une question a vous poser, puit de science que vous etes:

Avez vous deja réaliser un montage mettant un CNA 8 bits derriere un CAN 8 bits?

Moi, sa fait trois semaine que j'essaie et je n'ai toujours pas de résultat.
Le plus drole, c'est chacun des convertisseurs fonctionnent séparement.
J'ai deja effectué de nombreux test et réuni bcp d'information mais, apparement, je suis le seul au monde a vouloir réaliser ce montage.

Merci d'avance.

Numéro de l'article: 113742   |  De: Shinobi   |  Date: 2004-06-28 16:30:01
   RE: CAN/CNA
ça doit etre amusant :)
quel CNA/CAN tu as utilisé, et si possible donne nous le schéma ;)
@++
manu

Numéro de l'article: 113752   |  De: Manu   |  Date: 2004-06-28 16:45:59
   RE: CAN/CNA
Bon, tu as choisit de t'amuser?

Alors, j'ai utilise un AD7819/MC1408

Cablage de l'AD7819:

RD et CS a la masse
100Hz sur CONVST
Vref a 4V
VDD a 5V
Vin varie de 0 a 4V

Cablage du MC1408

figure 4 de la page 5 de la doc technique



Numéro de l'article: 113755   |  De: Shinobi   |  Date: 2004-06-28 16:49:44
   RE: CAN/CNA
Ok mais comment est-ce que tu commande l'ensemble ?

Numéro de l'article: 113764   |  De: Tgq   |  Date: 2004-06-28 16:55:49
   RE: CAN/CNA
c'est a dire.

Mon horloge cadence le CAN et le CNA suis le CAN.

Numéro de l'article: 113766   |  De: Shinobi   |  Date: 2004-06-28 16:57:43
   RE: CAN/CNA
Mon signal arrive sur le CAn, puis est converti en continu par le CAN et reconverti par le CNA ensuite

Numéro de l'article: 113769   |  De: Shinobi   |  Date: 2004-06-28 16:58:59
   RE: CAN/CNA
Ba alors sa ne vous amuse plus?

Numéro de l'article: 113776   |  De: Shinobi   |  Date: 2004-06-28 17:17:54
   RE: CAN/CNA
je pense que tu devrait mettre des résistances d'environ 100 à 500 à chaque bit de sortie de ton CAN

Numéro de l'article: 113795   |  De: seb28   |  Date: 2004-06-28 17:56:48
   RE: CAN/CNA
Pas besoin des résistances de tirage.
Je crois qu'il faut simplement insérer un tampon entre le CAN et CNA, car le courant fourni par le CAN n'est pas suffisant pour le CNA.
A tester!
David.

Numéro de l'article: 113811   |  De: David   |  Date: 2004-06-28 18:20:17
   RE: CAN/CNA
ce qu'il faut savoir c'est la résistance de sortie de ton CAN et la résistance d'entrée de ton CNA. Après on avisera

Numéro de l'article: 113838   |  De: seb28   |  Date: 2004-06-28 20:13:32
   RE: CAN/CNA
Tel que tu le fais, ca ne peut pas marcher...
D'apres la datasheet du CAN, il y a un temps de latence avant chaque conversion, pendant lequel la sortie est en haute impédance. Comme ton convertisseur N/A fait les conversion en continu, et qu'il est plus rapide que le CA/N, il convertit aussi les instants ou les sorties du CA/N sont en haut impédance, donnant un résultat faux... La siolution, comme insidué plus haut es de latcher les donnees en sortie du CA/N avec des 74377/375, etc etc...

Numéro de l'article: 113871   |  De: pazcal   |  Date: 2004-06-28 22:20:20
   RE: CAN/CNA
Salut,

Pazcal, pourrais tu developper ton idée?
Moi, j'ai deja essayé avec des buffer de courant puis avec des suiveurs entre les deux.

Merci

Numéro de l'article: 113931   |  De: Shinobi   |  Date: 2004-06-29 08:58:18
   RE: CAN/CNA
Non, il faut des latches!!! Tu dois memoriser l'information pour qu'elle soit stable pour que ton CNA puisse faire une conversion sans erreur... Car dans ton cas, entre chaque donnee numerique qui arrive, les sorties passent en haute impedance, et ton CNA converti aussi a cet instant faussant le resultat de la conversion!!!
donc tu mets un latche type 374 entre tes 2 convertisseurs, et l'horloge du latch reliée a l'horloge d'echantillonnage... ca n'a rien a voir avec des buffers en courant !!!

Numéro de l'article: 113953   |  De: pazcal   |  Date: 2004-06-29 09:38:52

   DS1820  
Bonjour !

Je cherche à lire un thermomètre DS1820 un pic. Mais j'obtient des températures très fausses (-35°C environ) alors qu'il fait 22°C.

Mes routines de communication fonctionnent bien, puisque si je lis le thermomètre avant de lancer la conversion, je lis 85°C c'est à dire la valeur par défaut)...

Les températures semblent évoluer de manière inverse (si je chauffe le thermomètre, la température devient encore plus négative)

A l'aide, je deviens fou.

Numéro de l'article: 113747   |  De: Balbenar   |  Date: 2004-06-28 16:38:53
   RE: DS1820
au lieu de compliquer la tache avec du 1-wire, prends plutot un chip avec sortie en SPI/I²C
pour ton problème, je penses que t'as inversé le sens de la trame dans ton programme ( b0 / b1 / b2 / b3 / b4 / b5 / b6 / b7 'remplacé' par b7 / b6 / b5 / b4 / b3 / b2 / b1 / b0 )

Numéro de l'article: 113750   |  De: Manu   |  Date: 2004-06-28 16:43:55
   RE: DS1820
Merci, mais non, je n'ai pas inversé les bytes, d'ailleurs j'ai poussé le vice jusqu'à calculer la valeur précise de la température avec la formule du datasheet, et maintenant, mon pic affiche fièrement -35.2°C (assez frais pour les vacances) !

Numéro de l'article: 113760   |  De: Balbenar   |  Date: 2004-06-28 16:52:14
   RE: DS1820
Quand tu récupères les deux octets de température est-il possible de les stocker dans deux variables, afin de les afficher à l'écran( si tu possèdes un debugger). Cela permettra de vérifier si l'erreur n'est pas ailleurs dans le programme.
Si la valeur affichée est cohérente avec la température ambiante tu seras fixé sur le problème!
David.

Numéro de l'article: 113794   |  De: David   |  Date: 2004-06-28 17:54:43
   RE: DS1820
Salut,

Tu es bien en mode 8 bit ? C'est ce qui pourrait expliqué la température négative vu que c'est le 9eme bit qui indique si la température est positive ou négative.

Sinon vérifie que tu as bien un DS1820 et pas un DS18B20 leurs tableaux de conversion trame/température sont différents.


Bonne chance
JP


Numéro de l'article: 113834   |  De: JP   |  Date: 2004-06-28 19:55:51
   RE: DS1820
J'ai trouvé !!!

Sur les 4 capteurs que j'ai, 3 sont nazes et avec le 4ème tout va très bien !

Merci à vous.

Balbenar

Numéro de l'article: 113900   |  De: Balbenar   |  Date: 2004-06-28 23:49:29

   panne tv 16/9 rouge  
bonjour, j'ai l'image de mon televiseur 16/9 de marque Samsung qui devient rouge quelque instand après l'allumage. j'ai déjà changé les 3 ampli video "tda6111q" mais c'est pas ça!! quelqu'un peut-il m'aider sur la panne? Merci. @micalement. Eric.

Numéro de l'article: 113753   |  De: ricou747   |  Date: 2004-06-28 16:46:05
   RE: panne tv 16/9 rouge
inverse sur la platine CRT les cannons du rouge et du vert

si écran toujours rouge c'est le CRT qui est HS

si l'écran devient vert il faut contrôler tout le circuit du rouge aussi bien sur la platine CRT que sur le châssis y compris le CI délivrant le signal pour le rouge

c'est tout ce qu'il y a à faire


Numéro de l'article: 113818   |  De: piraylleur   |  Date: 2004-06-28 18:46:59

   prog C  
salut à tous!!
je suis en train de faire un programme en langage C avec des eeproms externes.
tout fonctionne pour une eeprom en I2c ET j'aimerai maintenant mettre plusieurs eeprom en série, chacune d'elle a sa propre adresse mais je sais pas comment faire dans le prog pour dire de stocker dans telle ou telle mémoire..
il doit falloir faire avec: 1010A2A1A0 R/W
quelqu'un pourrrait-il m'aider????$

voila le bout de prog:

void init_ext_eeprom()
{
output_float(eeprom_scl);
output_float(eeprom_sda);


void write_ext_eeprom(long int address, byte data)
{

en tous cas, merci pour vos réponses!!


i2c_start();
i2c_write((0xa0|(byte)(address>>7))&0xfe);
i2c_write(address);
i2c_write(data);
i2c_stop();
delay_ms(11);


byte read_ext_eeprom(long int address)
{
byte data;
i2c_start();
i2c_write((0xa0|(byte)(address>>7))&0xfe);
i2c_write(address);
i2c_start();
i2c_write((0xa0|(byte)(address>>7))|1);
data=i2c_read(0);
i2c_stop();
return(data);


Numéro de l'article: 113761   |  De: jedy   |  Date: 2004-06-28 16:53:52
   RE: prog C
il faut que tu affectes à A0A1A2 une valeur matérielle(Vcc ou Gnd), uis quand tu veux écrire dedans, tu génére l'adresse(en tenant compte de l'état de A0A1A2) puis r/w à 1

Numéro de l'article: 113791   |  De: seb28   |  Date: 2004-06-28 17:50:06
   RE: prog C
oui c'est la ligne que j'ai mise plus haut certes, mais je sais pas comment l'utiliser, quelles instruction mettre et ou la mettre aussi...
merci si tu peux m'aider:!


Numéro de l'article: 113792   |  De: jedy   |  Date: 2004-06-28 17:51:20
   RE: prog C
pas besoin d'instruction, tu remplaces juste la variable address par:
1010A2A1A0 R/W
avec R/W à 1.
sinon toutes tes fonctions existent déjà ou c'est à toi de les faires

Numéro de l'article: 113793   |  De: seb28   |  Date: 2004-06-28 17:54:25
   RE: prog C
il suffit de mettre cette ligne:
i2c_write(address) par i2c_writ(10100001)???par exemple..

ou toutes les lignes la ou il y a address??

Numéro de l'article: 113798   |  De: jedy   |  Date: 2004-06-28 17:59:16
   RE: prog C
normalement oui pusque moi aussi j'utilise le bus I2C et je le fait comme ça cpdt, je ne sais pas s'il faut incorporer R/W dans ton prog ou pas, mais vu "<<7" je pense que si. Tu devrais essayer les 2

Numéro de l'article: 113801   |  De: seb28   |  Date: 2004-06-28 18:02:03
   RE: prog C
ok je vais essayer dés demain matin, la je dois partir
en tous cas merci beaucoup pour tes réponses
c'est cool!
merci
a+


Numéro de l'article: 113804   |  De: jedy   |  Date: 2004-06-28 18:05:11
   RE: prog C
je suis devant mon prog la, et tu es sur que address n'est pas plutot pour savoir a quelle adresse j'écris dans la mémoire??
moi c'est pas ca que je veux, je voudrai plutot choisir la mémoire dans laquelle je veux écrire (j'ai 8 mémoires... avec chacune une combinaison différente sur A0 A1 A2 ... )
merci

Numéro de l'article: 113936   |  De: jedy   |  Date: 2004-06-29 09:09:05
   RE: prog C
ben si c'est comme ça. les 4 premiers bites de 1010A2A1A0, après tu changes A0A1A2 pour sélectionner celle que tu veux

Numéro de l'article: 113952   |  De: seb28   |  Date: 2004-06-29 09:38:20
   RE: prog C
T'as raison, ce n'est pas address mais 0xA0(i2c_write((0xa0|(byte)(address>>7))&0xfe);)qu'il faut changer et ceci correspond à un écriture avec A0=A1=A2=0 et R/w=0 d'où 0xA0(1010 0000)


Numéro de l'article: 113957   |  De: seb28   |  Date: 2004-06-29 09:47:29
   RE: prog C
j'y arrive pas, ca me prend la tete ce truc serieux...:(
voila un bout du prog qui normalement est censé marcher mais qui ne marche pas...en fait j'aimerai que lorsque je fais "lire", il me reccrache tout ce qu'il y a dans la mémoire sur l'écran...
si tu peux m'aider, c'est super sympa!

while (1)
{

printf("\n\r GO (G) , STOP (S) , LIRE (L):");
ch=getc();
putc (ch);

switch (ch)
{
case 'g':
enable_interrupts(INT_RTCC);
enable_interrupts(global);
break;

case 's':
disable_interrupts(INT_RTCC);
disable_interrupts(global);
break;

case 'l':
init_lire();
break;



delay_ms (1000); // tempo 1 seconde!! (obligatoire pour l'horloge)



void init_lire ()
{
EEPROM_ADDRESS address;
printf("\n\r indiquer l'adresse de lecture :");
address = gethex();
printf ("\n\r valeur lue: %x\n\r",(read_ext_eeprom));







void init_ext_eeprom()
{
output_float(eeprom_scl);
output_float(eeprom_sda);


void write_ext_eeprom(long int address, byte data)
{

i2c_start(); //mettre l'adresse de l'eeprom 1010A2A1A0 R/W
i2c_write((0xa0|(byte)(address>>7))&0xfe);
i2c_write(SLAVEADD1);
i2c_write(data);
i2c_stop();
delay_ms(11);


byte read_ext_eeprom(long int address)
{
byte data;
i2c_start();
i2c_write((0xa0|(byte)(address>>7))&0xfe);
i2c_write(SLAVEADD1);
i2c_start();
i2c_write((0xa0|(byte)(address>>7))|1);
data=i2c_read(0);
i2c_stop();
return(data);


Numéro de l'article: 113960   |  De: jedy   |  Date: 2004-06-29 09:51:00
   RE: prog C
je pense que c'est 0xA0 qu'il faut changer par exemple si tu veux sélectionner l'EEPROM avec A0A1A2 à 1 tu remplaces 0xA0 par 0xAE.

i2c_start(); //mettre l'adresse de l'eeprom 1010A2A1A0 R/W
i2c_write((0xa0|(byte)(address>>7))&0xfe);
i2c_write(SLAVEADD1);
i2c_write(data);
i2c_stop();

i2c_start() c'est la géné du bit de start
i2c_stop() c'est la géné du bit de start

normalement dans le protocola I2C près un start tu envoie l'@ de l'EEPROM dans laquelle tu veux écrire puis après un acquittement(et là je ne sais pas ou c'est gerré dans ton prog) de l'esclave tu envois l'@ où tu veux écrire (là j'pense SLAVEADD1) encore un acquittement, et enfin tu envoie la donnée aquittement er STOP.



Numéro de l'article: 113967   |  De: seb28   |  Date: 2004-06-29 10:02:38
   RE: prog C
non c'est bien sur address qu'il faut que tu joues et 0xA0, puisque l'instruction | fais un ou exclusif bit à bit entre 0xA0 et address que l'on décale à droite pour envoyer le poids faible

Numéro de l'article: 113980   |  De: seb28   |  Date: 2004-06-29 10:19:28
   RE: prog C
je comprends plus rien la....
tu pe me montrer avec l'exemple que je t'ai posté plus haut??
je sais plus ce qu'il faut que je change
par exemple avec une mémoire (A0=A1=A2=0)
merci

Numéro de l'article: 113981   |  De: jedy   |  Date: 2004-06-29 10:21:58
   RE: prog C
voila ce que j'ai fait, par des exemple que j'ai trouvé un peu partout sur le net:
par contre j'aimerai que le prog, lorsque j'appui sur 'l' me sort tout ce qu'il a dans la mémoire...(tu sais comment faire ca????)
qu'est ce que je met dans "init_lire"????
merci beaucoup a toi!


#define SLAVEADD1 0xa0

while (1)
{

printf("\n\r GO (G) , STOP (S) , LIRE (L):");
ch=getc();
putc (ch);

switch (ch)
{
case 'g':
enable_interrupts(INT_RTCC);
enable_interrupts(global);
break;

case 's':
disable_interrupts(INT_RTCC);
disable_interrupts(global);
break;

case 'l':
init_lire();
break;



delay_ms (1000); // tempo 1 seconde!! (obligatoire pour l'horloge)




void init_ext_eeprom()
{
output_float(eeprom_scl);
output_float(eeprom_sda);


void write_ext_eeprom(long int address, byte data)
{

i2c_start(); //mettre l'adresse de l'eeprom 1010A2A1A0 R/W
i2c_write(SLAVEADD1);
i2c_write(address);
i2c_write(address>>8);
i2c_write(data);
i2c_stop();
delay_ms(11);


byte read_ext_eeprom(long int address)
{
byte data;
i2c_start();
i2c_write(SLAVEADD1);
i2c_write(address);
i2c_write(address>>8);
i2c_start();
i2c_write(SLAVEADD1+1);
data=i2c_read(0);
i2c_stop();
return(data);

Numéro de l'article: 113988   |  De: jedy   |  Date: 2004-06-29 10:31:31
   RE: prog C
peux tu me donner le contenu de la fonction I2C_write().


Numéro de l'article: 113993   |  De: seb28   |  Date: 2004-06-29 10:33:57
   RE: prog C
voila ce que j'ai trouvé dans l'aide de ccs:

Syntax:
i2c_write (data)



Parameters:
data is an 8 bit int



Returns:
This function returns the ACK Bit.

0 means ACK, 1 means NO ACK.



Function:
Sends a single byte over the I2C interface. In master mode this function will generate a clock with the data and in slave mode it will wait for the clock from the master. No automatic timeout is provided in this function. This function returns the ACK bit. The LSB of the first write after a start determines the direction of data transfer (0 is master to slave). Note that specific I2C protocol depends on the slave device.



Availability:
All devices.



Requires
#use i2c



Examples:
long cmd;

...

i2c_start(); // Start condition

i2c_write(0xa0);// Device address

i2c_write(cmd);// Low byte of command

i2c_write(cmd>>8);// High byte of command

i2c_stop(); // Stop condition




Numéro de l'article: 114001   |  De: jedy   |  Date: 2004-06-29 10:39:13
   RE: prog C
je ne vois pas ta fonction init_lire mais elle doit utiliser ta fonction read pour toutes ses @ (capacité de l'EEPROM) et je pense que cette fonction devrait plutôt être comme ça:

byte read_ext_eeprom(long int address)
{


i2c_start();
i2c_write(SLAVEADD1+1);
i2c_write(address);
data=i2c_read(0);
i2c_stop();
return(data);



Numéro de l'article: 114005   |  De: seb28   |  Date: 2004-06-29 10:42:36
   RE: prog C
oui c'est quelque chose comme ca, c'est le read_ext_eeprom..
mais ce que je veux, c'est pouvoir faire défiler a l'écran (printf....) toutes les données qu'il a pu stocker en mémoire...



Numéro de l'article: 114011   |  De: jedy   |  Date: 2004-06-29 10:47:21
   RE: prog C
tu as toute tes réponses avec:
i2c_start(); // Start condition
i2c_write(0xa0);// Device address
i2c_write(cmd);// Low byte of command
i2c_write(cmd>>8);// High byte of command
i2c_stop(); // Stop condition
sauf qu'à chaque fois il faut que tu test l'acquittement comme ça:

//pour écrire
int ACK
ACK=i2c_write(0xa0);// Device address
if(ACK==1)exit(1);
ACK=i2c_write(address);
if(ACK==1)exit(1);
ACK=i2c_write(data);
if(ACK==1)exit(1);

et puis regarde ce qui se passe pour la fonction I2C_read(), mais ça devrait être à peu près du même genre

Numéro de l'article: 114014   |  De: seb28   |  Date: 2004-06-29 10:50:04
   RE: prog C
c'est pas obligé l'acquittement, si?

Numéro de l'article: 114018   |  De: jedy   |  Date: 2004-06-29 10:51:30
   RE: prog C
et bien si tu veux faire defiler tu fais défiler sur @:
int i=0,address=0;
for(i=0;i<Capacité_max_eeprom;i++)
{
printf("%d",byte read_ext_eeprom(long int address) );



Numéro de l'article: 114021   |  De: seb28   |  Date: 2004-06-29 10:54:35
   RE: prog C
l'ACK est obligé puisque moi aussi j'ai programmé un I2C et à chaque fois faut le vérifier(en cas de pépin) mais tu penses que tout vas bien, ce n'est pas obligatoire.

Numéro de l'article: 114024   |  De: seb28   |  Date: 2004-06-29 10:56:38
   RE: prog C
ok pour l'acquittement...je pense qu'il va falloir que je le mette alors mais une fois que le prog marchera un peu car la , ca marche pas...
j'arrive bien a avoir les bonnes valeur de mes capteurs qui s'affichent sur l'ecran...mais je sais pas si il les stock bien puisque je n'arrive pas a les lire aprés...


Numéro de l'article: 114031   |  De: jedy   |  Date: 2004-06-29 11:11:24
   RE: prog C
juste une question: tu as une interface I2C? et si tu pouvais aussi m'envoyer le contenu de I2C_read()

Numéro de l'article: 114038   |  De: seb28   |  Date: 2004-06-29 11:19:22
   RE: prog C
si tu veux, je peux filer tout le prog, si tu peux me le débugger???
tu as l'air de bien t'y connaitre...


#include <16F877.h>
#device adc=10
#use Delay(Clock=20000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7)
#use i2c(Master,Fast,sda=PIN_C4, scl=PIN_C3)
#fuses XT, NOWDT, NOPROTECT, PUT, BROWNOUT, NOLVP
#define PIN_LED7 PIN_D1

#ifndef RTC_SCLK
#define RTC_SCLK PIN_C1
#define RTC_IO PIN_C0
#define RTC_RST PIN_C2
#endif

#ifndef EEPROM_SDA
#define EEPROM_ADDRESS long int
#define EEPROM_SIZE 8192
#define EEPROM_SDA PIN_C4
#define EEPROM_SCL PIN_C3
#define SLAVEADD1 0xa0

#endif

#if defined(__PCB__)
#elif defined(__PCM__)
#elif defined(__PCH__)
#endif


#include <input.c>
#include <sht75.c>
void init_ext_eeprom();
void write_ext_eeprom(long int, byte);
void read_ext_eeprom(long int);

void write_ds1302_byte(byte);
void write_ds1302(byte, byte);
byte read_ds1302(byte);
void rtc_init();
void rtc_set_datetime(byte ,byte ,byte ,byte ,byte ,byte );
void rtc_get_date(& byte ,& byte ,& byte );
void rtc_get_time(& byte,& byte,& byte);
void rtc_write_nvr(byte ,byte );
byte rtc_read_nvr(byte );

void SaveDate();
void SaveValue(long);
void LoadMem(EEPROM_ADDRESS);
void acquisition();
void efface();
void LoadAllMem(EEPROM_ADDRESS);
void LoadAllTrame(EEPROM_ADDRESS);
void init_lire ();
char ch;
long div_timer_0,res;
EEPROM_ADDRESS w_adresse;
int tab1,tab2;

void main()
{
byte pin_x;
//-------------- Init Timer --------------------------------------

setup_counters(RTCC_INTERNAL,RTCC_DIV_256);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
div_timer_0 = 0;


//--------------- Init Horloge ----------------------------------

rtc_init();
rtc_set_datetime(0x028,0x06,0x04,0x15,0x12,0x15); // valeur de l'horloge au départ

ch='z';
w_adresse = 0;

while (1)
{

printf("\n\r GO (G) , STOP (S) , LIRE (L):");
ch=getc();
putc (ch);

switch (ch)
{
case 'g':
enable_interrupts(INT_RTCC);
enable_interrupts(global);
break;

case 's':
disable_interrupts(INT_RTCC);
disable_interrupts(global);
break;

case 'l':
init_lire();
break;



delay_ms (1000); // tempo 1 seconde!! (obligatoire pour l'horloge)



void init_lire ()
{

????????????????????
????????????????????



void acquisition()
{
Reset_chip();
delay_ms(100);
ReadT=false;
Read();
SaveValue(z); // save eeprom Humi
tab1=z;
tab2=z >> 8;

ReadT=true;
Read();
SaveValue(z); // save eeprom temp
tab1=z;
tab2=z >> 8;
printf("\n\rCapteur / Humi / Temp : %u / %f / %f", voie, real_rh, real_t);





void SaveValue(long res)
{
byte L,H;
L = res & 0x00FF;
H = res >> 8;
write_ext_eeprom (w_adresse, H);
w_adresse++;
write_ext_eeprom (w_adresse, L);
w_adresse++;
// printf("%lx %x %x\r",res,H,L);


void SaveDate()
{
byte day,mth,year,dow,hr,min,sec, L,H;
sec = read_ds1302(0x81); // 81 = 10000001
min = read_ds1302(0x83); // 83 = 10000011
hr = read_ds1302(0x85); // 85 = 10000101
year = read_ds1302(0x8d); // 8d = 10001101
day = read_ds1302(0x87); // 87 = 10000111
mth = read_ds1302(0x89); // 89 = 10001001
sec = ( ( (sec & 0x70) >>4) *10) + (sec & 0x0F); // 70 = 11100000 0f = 00001111
min = ( ( (min & 0x70) >>4) *10) + (min & 0x0F);
hr = ( ( (hr & 0x70) >>4) *10) + (hr & 0x0F);
day = ( ( (day & 0x70) >>4) *10) + (day & 0x0F);
mth = ( ( (mth & 0x70) >>4) *10) + (mth & 0x0F);
year = ( ( (year & 0x70) >>4) *10) + (year & 0x0F);


if (w_adresse > 8191) w_adresse = 0;
write_ext_eeprom (w_adresse, year); //on écrit d'abord l'année
w_adresse++;
write_ext_eeprom (w_adresse, mth); //puis le mois
w_adresse++;
write_ext_eeprom (w_adresse, day); //puis le jour
w_adresse++;
write_ext_eeprom (w_adresse, hr); //puis l'heure
w_adresse++;
write_ext_eeprom (w_adresse, min); //puis les minutes
w_adresse++;
write_ext_eeprom (w_adresse, sec); //puis les secondes
w_adresse++;

printf(" %u/%u/200%u %u:%u:%u",day,mth,year,hr,min,sec); // affiche à l'écran la date et l'heure



void LoadMem(EEPROM_ADDRESS r_adresse)
{
byte day,mth,year,dow,hr,min,sec, L,H;
long res;

year = read_ext_eeprom (r_adresse); //on lit d'abord l'année
r_adresse++;
mth = read_ext_eeprom (r_adresse); //puis le mois
r_adresse++;
day = read_ext_eeprom (r_adresse); //puis le jour
r_adresse++;
hr = read_ext_eeprom (r_adresse); //puis l'heure
r_adresse++;
min = read_ext_eeprom (r_adresse); //puis les minutes
r_adresse++;
sec = read_ext_eeprom (r_adresse); //puis les secondes
r_adresse++;
H = read_ext_eeprom (r_adresse);
r_adresse++;
L = read_ext_eeprom (r_adresse);
r_adresse++;

res = 0;
res = H * 0x100 + L;
printf(" %u/%u/200%u %u:%u:%u %lx \r",day,mth,year,hr,min,sec,res); // affiche à l'écran la date et l'heure


void LoadAllMem(EEPROM_ADDRESS r_adresse)
{
BYTE ch;
r_adresse = 0;
while (r_adresse<w_adresse)
{
ch = read_ext_eeprom (r_adresse);
printf("%u",ch);
r_adresse++;



void LoadAllTrame(EEPROM_ADDRESS r_adresse)
{
BYTE ch;
r_adresse = 0;
while (r_adresse<w_adresse)
{
LoadMem(r_adresse);



//------------------------ IT ----------------------------------

#int_RTCC
RTCC_isr()
{
long res;
div_timer_0++;
if (div_timer_0>73)
{
div_timer_0 = 0;
SaveDate();
voie = 0;
acquisition();
res=real_t;

div_timer_0 = 0;

voie = 1;
acquisition();
res=real_t;

div_timer_0 = 0;

voie = 2;
acquisition();
res=real_t;

div_timer_0 = 0;

voie = 3;
acquisition();
res=real_t;

div_timer_0 = 0;

voie = 4;
acquisition();
res=real_t;

div_timer_0 = 0;

voie = 5;
acquisition();
res=real_t;

div_timer_0 = 0;

voie = 6;
acquisition();
res=real_t;

div_timer_0 = 0;

voie = 7;
acquisition();
res=real_t;

div_timer_0 = 0;

voie = 8;
acquisition();
res=real_t;

div_timer_0 = 0;

voie = 9;
acquisition();
res=real_t;

div_timer_0 = 0;

voie = 10;
acquisition();
res=real_t;

div_timer_0 = 0;

voie = 11;
acquisition();
res=real_t;

div_timer_0 = 0;

voie = 12;
acquisition();
res=real_t;

div_timer_0 = 0;

voie = 13;
acquisition();
res=real_t;

div_timer_0 = 0;

voie = 14;
acquisition();
res=real_t;

div_timer_0 = 0;

voie = 15;
acquisition();
res=real_t;








//------------------ Lecture /Ecriture mémoire ---------------



void init_ext_eeprom()
{
output_float(eeprom_scl);
output_float(eeprom_sda);


void write_ext_eeprom(long int address, byte data)
{

i2c_start(); //mettre l'adresse de l'eeprom 1010A2A1A0 R/W
i2c_write(SLAVEADD1);
i2c_write(address);
i2c_write(address>>8);
i2c_write(data);
i2c_stop();
delay_ms(11);


byte read_ext_eeprom(long int address)
{
byte data;
i2c_start();
i2c_write(SLAVEADD1);
i2c_write(address);
i2c_write(address>>8);
i2c_start();
i2c_write(SLAVEADD1+1);
data=i2c_read(0);
i2c_stop();
return(data);



//-------------- Lecture /Ecriture horloge -------------------

void write_ds1302_byte(byte cmd)
{
byte i; // i est sur 1 octet

for(i=0;i<=7;i++)
{
output_bit(RTC_IO, shift_right(&cmd,1,0) );
output_high(RTC_SCLK); // horloge à 1
output_low(RTC_SCLK); // horloge à 0



void write_ds1302(byte cmd, byte data)
{

output_high(RTC_RST);
write_ds1302_byte(cmd);
write_ds1302_byte(data);
output_low(RTC_RST);


byte read_ds1302(byte cmd)
{
byte i,data;

output_high(RTC_RST);
write_ds1302_byte(cmd);

for(i=0;i<=7;++i)
{
shift_right(&data,1,input(RTC_IO));
output_high(RTC_SCLK);
delay_us(2);
output_low(RTC_SCLK);
delay_us(2);

output_low(RTC_RST);
return(data);


void rtc_init()
{

byte x;
output_low(RTC_RST);
delay_us(2);
output_low(RTC_SCLK);
write_ds1302(0x8e,0); // 8e = 10001110
write_ds1302(0x90,0xa6); // 90 = 10010000 a6 = 10100110
x=read_ds1302(0x81); // 81 = 10000001
if((x & 0x80)!=0)
write_ds1302(0x80,0); // 80 = 10000000



void rtc_set_datetime(byte day,byte mth,byte year,byte hr,byte min,byte sec)
{
write_ds1302(0x86,day); // 86 = 10000110
write_ds1302(0x88,mth); // 88 = 10001000
write_ds1302(0x8c,year); // 8c = 10001100

write_ds1302(0x84,hr); // 84 = 10000100
write_ds1302(0x82,min); // 82 = 10000010
write_ds1302(0x80,sec); // 80 = 10000000


void rtc_get_date(byte & day,byte & mth,byte & year)
{
day = read_ds1302(0x87); // 87 = 10000111
mth = read_ds1302(0x89); // 89 = 10001001
year = read_ds1302(0x8d); // 8d = 10001101


void rtc_get_time(byte & hr,byte & min,byte & sec)
{
hr = read_ds1302(0x85); // 85 = 10000101
min = read_ds1302(0x83); // 83 = 10000011
sec = read_ds1302(0x81); // 81 = 10000001


void rtc_write_nvr(byte address,byte data)
{
write_ds1302(address|0xc0,data); // c0 = 11000000


byte rtc_read_nvr(byte address)
{
return(read_ds1302(address|0xc1)); // c1 = 11000001

















Numéro de l'article: 114044   |  De: jedy   |  Date: 2004-06-29 11:23:07
   RE: prog C
i2c read:

Syntax:
data = i2c_read();

or

data = i2c_read(ack);



Parameters:
ack -Optional, defaults to 1.

0 indicates do not ack.

1 indicates to ack.



Returns:
data - 8 bit int



Function:
Reads a byte over the I2C interface. In master mode this function will generate the clock and in slave mode it will wait for the clock. There is no timeout for the slave, use I2C_POLL to prevent a lockup. Use RESTART_WDT in the #USE I2C to strobe the watch-dog timer in the slave mode while waiting.



Availability:
Devices with built in I2C



Requires
#use i2c



Examples:
i2c_start();

i2c_write(0xa1);

data1 = i2c_read();

data2 = i2c_read();

i2c_stop();





Numéro de l'article: 114046   |  De: jedy   |  Date: 2004-06-29 11:24:32
   RE: prog C
ton prog à l'aire bon il faut que tu utilises ta fonction read et voilà (à vu de nez). Mais regarde la doc de tes EEPROM, tout est marqué deçu. Sinon ce peut être un PB de cablâge: ton µc a t'il une interface I2C

Numéro de l'article: 114061   |  De: seb28   |  Date: 2004-06-29 11:37:33
   RE: prog C
ouai c'est un pic16f877, l'i2c fonctionne bien, y'a pa de pbm avec ca..le truc c'est que je veux savoir si je sauvegarde bien mes données dans la mémoire souhaitée et arriver a lire cette mémoire quoi..


Numéro de l'article: 114062   |  De: jedy   |  Date: 2004-06-29 11:39:20
   RE: prog C
j'te conseil de vérifier l'ACK à chaque fois dans premier temps pour voir ce qui se passe. T'as pas le protocole de transmission de tes EEPROM???

Numéro de l'article: 114065   |  De: seb28   |  Date: 2004-06-29 11:42:04
   RE: prog C
je vois pas ce que tu ve la...
je t'ai tout donné je pense déjà.


Numéro de l'article: 114067   |  De: jedy   |  Date: 2004-06-29 11:43:57
   RE: prog C
normalement dans la doc technique de tes EEPROM il y a un chronogramme représentant le protcole à suivre pour écrire ou lire

Numéro de l'article: 114071   |  De: seb28   |  Date: 2004-06-29 11:50:07
   RE: prog C
a ok ouai...j'ai déjà vu oui.
mais le probleme que j'ai, je pense, c'est pour arriver à lire ce qui se trouve dans la mémoire...


Numéro de l'article: 114078   |  De: jedy   |  Date: 2004-06-29 11:56:09
   RE: prog C
est ce que quand tu sélectionne l'une de tes EEPROM, tu envoie une @ mémoire après?

Numéro de l'article: 114093   |  De: seb28   |  Date: 2004-06-29 12:05:48
   RE: prog C
c'est normale que ça marche pas tu fais i2c_read(0) et 0: pas d'acquittement

Numéro de l'article: 114096   |  De: seb28   |  Date: 2004-06-29 12:10:41
   RE: prog C
donc je dois juste mettre un 1 a la place du 0??


Numéro de l'article: 114129   |  De: jedy   |  Date: 2004-06-29 13:01:04
   RE: prog C
bas ça c'est suivant ce que tu m'as donné:
data = i2c_read(ack);

Parameters:
ack -Optional, defaults to 1.
0 indicates do not ack.
1 indicates to ack.
soit tu ne mets rien apparement.
Fin moi quand j'ai fait mon I2C j'ai tout programùmer moi même et là tu devrai suivre ce que te donne la doc et sa devrait marcher mais aussi tu devrais vérifier les acquittement à chaque que t'envoie une donnée ou @ parceque s'ils sont faux, ce peut être pour plrs raison

Numéro de l'article: 114132   |  De: seb28   |  Date: 2004-06-29 13:04:50
   RE: prog C
<a href=> link</a>

Numéro de l'article: 123433   |  De: link-   |  Date: 2004-08-03 20:45:55

   pic16f873  
Salut!!
je suis entrain de craquer devant mon pic!
Depuis 2h je me bagare avec l'instruction btfss ou btfsc.Je suis entrain de faire une comparaison.
Voila mon bout de prog:
btfss STATUS,C
goto max
bsf PORTB,7

Et bien il n'exécute que le bsf, vous allez me dire normal si C=1, mais le truc, c'est que si au méme endroit de mon programme je remplace btfss par btfsc et bien c'est pareil il exécute l'instruction bsf, mais pourquoi?
Merci , pour toute vos réponses qui m'évitera la crise de nerf.(lol)
damien

Numéro de l'article: 113770   |  De: damien   |  Date: 2004-06-28 17:00:29
   RE: pic16f873
Donne nous les instructions qui ce trouvent avant le test, car si tu changes BTFSS par BTFSC, il y a obligatoirement un différence au niveau du saut!
David.

Numéro de l'article: 113784   |  De: David   |  Date: 2004-06-28 17:32:47

   ultrason  
bonsoir

je cherche a determiner la distance d'un objet par rapport a un mur.
pour cela je pense utiliser un emetteur ultrason qui envoit une onde et un recepteur qui attend son echo.
J ai vu des modules tout fait munis d'un emetteur et un recepteur.
Mais je prefere utiliser un emetteur et un recepteur.
J ai vu plusieurs composant mais je ne vois pas a quoi correspondent les caracteristiques.

Voivi un exemple :
- Signal d'entrée: 20 VRMS max
- Fréquence: 39 KHz
- SPL: 107 dB
- Sensibilité: 5 mV/Pa/1KH
- Capacité: 1200 pF

Pour la frequence je vois qu il envoit des ondes a 39KHz donc prevoir un recepteur pour des ondes a 39KHz.

Mais le reste n est pas parlant a mes yeux.

des infos ???

mercid avance

Numéro de l'article: 113774   |  De: xunil   |  Date: 2004-06-28 17:09:14
   RE: ultrason
tu comptes les propager dans l'aire tes ultrasons??
puisque si c'est le cas vaudrait mieux faire une mesure au laser puisque les ultrasons se propagent très mal dans l'aire, voir pas du tout. C'est pour ça que toutes les mesures à ultrason se font dans l'eau ou à travers un gel comme pour les écho-graphies.
sinon Vrms c'est la tension eff max
sensibilité, c'est la sensibilité de ton capteur dans les deux sens, c'à d quand tu envoie une impulsion de 5 mV sur ton capteur, cela entraine une déflageation de 1 Pascal dans le milieux considéré et inversement, si ton capteur reçoit une déflagration de 1 Pascal, cela génére une tension de 5 mV sur ton capteur.
Capacité ben c'est la capa de ton capteur
sinon SPL, je ne m'en rappel plus

Numéro de l'article: 113790   |  De: seb28   |  Date: 2004-06-28 17:47:05
   RE: ultrason
j'ai utiliser des capteurs à ultrasons dans l'air afin de mesurer des distances et ca marche super bien j'avais une précision de l'ordre du millimètre...il suffit que l'onde soit guidée un peu avec un mur ou autre et que l'objet sur leque l'onde réfléchi soit plat afin de renvoyer l'onde le mieux possible


Numéro de l'article: 113796   |  De: jedy   |  Date: 2004-06-28 17:56:58
   RE: ultrason
t'es sûr de ce que t'avances puisque l'aire absorbe plus de 99% de l'énergie incidente!!!!

Numéro de l'article: 113799   |  De: seb28   |  Date: 2004-06-28 18:00:02
   RE: ultrason
en tous cas, c'est ce que j'ai fait et tout marche nickel ouai..
maintenant c'est vrai que le laser marche beaucoup mieux (mais beaucoup plus cher....)
j'ai pris des capteurs à ultrasons mesurant de 150mm à 1100mm avec un angle sonique de 6 dgré et sortie analogique 0/10v
et avec compensation en température pour éviter toutes dérives thermiques
voila



Numéro de l'article: 113802   |  De: jedy   |  Date: 2004-06-28 18:04:06
   RE: ultrason
non j'dis des conneries, c'est l'inv et c'est à cause de ça que c'est très dur de faire des mesures dans l'aire à moins d'être très près

Numéro de l'article: 113803   |  De: seb28   |  Date: 2004-06-28 18:04:36
   RE: ultrason
excuse moi mais c'est un sacré capteur que tu as aussi!!!!

Numéro de l'article: 113806   |  De: seb28   |  Date: 2004-06-28 18:05:52
   RE: ultrason
donc vous me conseilleriez d utiliser un emetteur IR pour en deduire la distance sachant que celle-ci est de 1m a 10cm comme un detecteur de recul de voiture.
D ailleurs quels sont les types d emetteur utilisé dans ce genre de systeme (radar de stationnement)? ultrason ou lumineuse ?

merci d avance

Numéro de l'article: 113844   |  De: xunil   |  Date: 2004-06-28 20:27:20
   RE: ultrason
seb28 tu les sors d'où tes infos de propagation des ultra sons dans l'air ?
tout le monde en utilise pour mesurer des distances de quelques cm à plusieurs metres (voir les modules polaroid, 15m max je crois)...absorption à 99% par l'air ? Elle vient comment cette formule ? Je tente de faire le lien avec les haut parleurs et les frequences audio, je ne vois pas pkoi ça se perdrait tant.

Des explications stp...

Aurélien.

Numéro de l'article: 113884   |  De: Aurélien   |  Date: 2004-06-28 23:02:46
   RE: ultrason
en fait en cherchant mieux sur le web j ai vu pas mal de lien parlant sur le principe de telemetre ultrasons.
Les erreurs peuvent provenir du fait que l onde retour ne fasse pas le meme chemin que l onde emise. De la vitesse utilisé pour le calcul
V = 331xracine{(T°+273)/273 donc si temperature change, la vitesse de propagation change aussi, et des parasitages (si ondes de meme frequences).
Sinon ce sont des systemes tres utilisés pour le calcul de distance.
(seulement le son ne se propage pas dans le vide).

merci a tous

Numéro de l'article: 113891   |  De: xunil   |  Date: 2004-06-28 23:21:30
   RE: ultrason
je me suis trompé, ce n'est pas absorbe, mais réfléchi. Et la formule est:
Er=Ei*((Z1-Z2)/(Z1+Z2))² avec Z1 l'impédance acoustique du premier milieu et Z2 du deuxième. Le pb étant que dans l'air il faut bien savoir les diriger les US, puisque j'en utilise dans le cadre d'une mesure d'épaisseur, mais vu le transducteur de merde que j'ai, j'suis obligé de le mettre dans l'eau, mais c'est vrai (désolé) que ça marche bien pour la détermination de la distance, c'est juste que j'avais inversé Z1 et Z2 hier.

Numéro de l'article: 113930   |  De: seb28   |  Date: 2004-06-29 08:58:11
   RE: ultrason
ok, c'est pas grave seb28, ca arrive a tout le monde de se tromper
en tous cas, xunil aura eu des réponses, c'est l'essentiel



Numéro de l'article: 113946   |  De: jedy   |  Date: 2004-06-29 09:18:37
   RE: ultrason
pensons a nos amis les chiens! Eux y savent bien que les ultras sons leur casse les oreilles.

Numéro de l'article: 113970   |  De: Eric Leblanc   |  Date: 2004-06-29 10:05:08
   RE: ultrason
lol
merci a tous pour ces reponses c est vrai que ca aide beaucoup.



Numéro de l'article: 114290   |  De: xunil   |  Date: 2004-06-29 16:16:25

   Télécommande Alarme Veglia  
Bonjour à tous,

On m'a ramené une télécommande d'une alarme auto de marque Veglia (télécommande HF). Elle ne fonctionne plus (mais elle s'allume bien).
Une capa située sur l'oscillateur 224.5 MHz est cassée et je ne connais pas sa valeur.
Si je regarde à l'analyseur de spectre, elle émet actuellement dans le 380 MHz ! Je ne pense pas que cela soit la bonne fréquence pour ce type d'utilisation ?!

Les data circulent bien vers le transistor de sortie, il y a donc je pense "juste" une histoire de fréquence.

Quelqu'un a t'il des infos sur les fréquences utilisées dans cette marque d'alarme (montée sur une Citroën XM) ou à défaut le schéma de ces télécommandes ?

Je ne possède pas la deuxième télécommande qui a été perdue (ca aurait été trop facile ! )

Merci de votre réponses...

Civodul

Numéro de l'article: 113779   |  De: Civodul   |  Date: 2004-06-28 17:25:47
   RE: Télécommande Alarme Veglia
Salut

Saurais tu poster une Photo ou un Scan de cette téléco ?

A+

Numéro de l'article: 113782   |  De: SuperPapum   |  Date: 2004-06-28 17:29:10
   RE: Télécommande Alarme Veglia
Salut,

Voici une vue du dessous du PCB de la télécommande.


Cliquez ici pour ouvrir l'image


Numéro de l'article: 114253   |  De: Civodul   |  Date: 2004-06-29 15:18:56
   RE: Télécommande Alarme Veglia

Et une autre vue du dessus


Cliquez ici pour ouvrir l'image


Numéro de l'article: 114257   |  De: Civodul   |  Date: 2004-06-29 15:20:37
   RE: Télécommande Alarme Veglia
Salut

Je ne vois pas le transistor oscillateur ! Sais tu me dire où il se trouve ? (Cela permettra de situer la capa en question dans l'oscillateur.)

A+

Numéro de l'article: 114300   |  De: SuperPapum   |  Date: 2004-06-29 16:33:29
   RE: Télécommande Alarme Veglia
Salut,

La capa qui est cassée est celle qui est en rouge dans la première image.



Numéro de l'article: 114348   |  De: Civodul   |  Date: 2004-06-29 18:20:47
   RE: Télécommande Alarme Veglia

Une troisième image qui montre la partie antenne/transistor.


Cliquez ici pour ouvrir l'image


Numéro de l'article: 114350   |  De: Civodul   |  Date: 2004-06-29 18:23:03
   RE: Télécommande Alarme Veglia
Salut

.... c'est bien ce qui manquait. Je suis entrain de remonter au schéma. Es t'il possible que tu m'envoies les photos en pleine résolution (sans trop de compression) dans ma BAL ? Le top serait une photo sans ton dessin rouge.

A+

Numéro de l'article: 114359   |  De: SuperPapum   |  Date: 2004-06-29 19:05:13

   ECRAN TFT HS  
bonjour j'ai 1 ecran 15 pouce tft hs de marque packard bell
c'est la carte backlight de ref AKCRON AIM 1504 qui est hs
je cherche qulqu'un qui pourrez me donner l'adresse d'un distributeur de piece détaché pour que je puisse acheter cette carte
merci
PS le modele du tft est SLIM VIEW 527
merci claude

Numéro de l'article: 113781   |  De: claude   |  Date: 2004-06-28 17:27:59
   RE: ECRAN TFT HS
adresse toi à Packard Bell


Numéro de l'article: 113819   |  De: piraylleur   |  Date: 2004-06-28 18:50:00

   labview + DAQ  
bonjour,

j'utilise Labview 7 express depuis peu, et je voudrais m'exercer sur l'acquisition de données à travers les périphériques. Le problème est que lorsque je veux utiliser un périphérique GPIB par exemple, il ne se trouve pas dans la liste des périphériques, dans cette liste se trouvent seulement le port COM3 et LPT1.

Aussi dans la fenetre OUTIL de labview, il devrait y avoir un champ "acquisition de données" mais moi je ne l'ai pas...

es ce que quelqu'un a déjà rencontré ce type de problème?
suis-je obligé d'acheter une carte PCMCIA par exemple pour simuler le fonctionnement de DAQ??

merci beaucoup

Numéro de l'article: 113786   |  De: fred   |  Date: 2004-06-28 17:35:20
   RE: labview + DAQ
il n'y a aucune info sur les routines daq pour acceder a un port gpib dans la litterature labview... ??? je suis étonné.
(le help ou leur site)
si pas info, labview fournit peut etre un morceau de soft pour que tu puisse acceder à un perif gpib (de type active x)..





Numéro de l'article: 113812   |  De: frost   |  Date: 2004-06-28 18:24:31
   RE: labview + DAQ
seulement si je comprends bien tu ne peux pas faire d'acquisition en reel avec cette version d'evaluation, ce qui expliquerait l'absence de champ acquisition de données..


Numéro de l'article: 113817   |  De: frost   |  Date: 2004-06-28 18:44:06
   Recherche d'emploi
Bonjour à tous,

Je suis jeune diplomé en instrumentation industrielle et je recherche actuellement un poste de developpeur Labview. Si quelqu'un pouvais m'aider à ce sujet ?
Merci

Numéro de l'article: 121192   |  De: Omar   |  Date: 2004-07-23 11:43:34

   problème TV + volume  
Bonjour,

j'ai un problème avec ma TV. Je ne sais pas comment cela se fait, mais le volume s'est bloqué à un niveau et je ne peux pas aller plus loin. Je n'arrive plus a rentrer dans le menu de ma télé donc je sais pas comment faire pour remédier à ce problème.

pouvez-vous m'aider?

Numéro de l'article: 113788   |  De: tino   |  Date: 2004-06-28 17:38:41
   RE: problème TV + volume
Quelle model de TV ?

Numéro de l'article: 113800   |  De: phenix   |  Date: 2004-06-28 18:00:35
   RE: problème TV + volume
la télé a 8 ans, je sais pas le modèle...

Numéro de l'article: 113810   |  De: tino   |  Date: 2004-06-28 18:17:22
   RE: problème TV + volume
tu es en mode "HOTEL"

il nous faut la Marque et le Type exact du téléviseur pour pouvoir t'aider



Numéro de l'article: 113822   |  De: piraylleur   |  Date: 2004-06-28 18:51:43
   RESOLU: problème TV + volume
bonjour et merci à ceux qui m'ont aidé

j'ai réussi à résoudre mon problème de volume,
en effet, j'étais en mode "hotel",

il fallait maintenir appuyer la touche PC dela telecommande et allumer la télé, de là un menu apparait et on peut régler le volume

bonne journée

Numéro de l'article: 114015   |  De: tino   |  Date: 2004-06-29 10:50:17