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 en BASIC et PASCAL !

Modérateur : Gérard

conversion longint en exadecimal
cyril13110
Avatar de l’utilisateur
Expert
Expert
Messages : 1231
Âge : 42
Enregistré en : avril 2016
Localisation : 13

#11 Message par cyril13110 » mar. 8 oct. 2024 18:44

Ok merci j'ai compris je ferais un test des que possible
j'en appel à l'Energie de l'univers de la nature que ma carte électronique ..... tombe en marche

conversion longint en exadecimal
cyril13110
Avatar de l’utilisateur
Expert
Expert
Messages : 1231
Âge : 42
Enregistré en : avril 2016
Localisation : 13

#12 Message par cyril13110 » jeu. 17 oct. 2024 10:11

paulfjujo a écrit :oui, c'est cela...

void SendSerialDataByteToAD9850(unsigned char Donnee)
{
Byte counter = 0;
do
{
SData = 0;
if(Donnee & 0x01) SData=1; // Check LSB bit
Donnee = Donnee>>1; // RIGHT SHIFT THE Donnee BY ONE BIT
W_CLCK = 1;
Delay_us(100);
W_CLCK = 0;
Delay_us(100);
counter++;
}while(counter<8);

}

en premier le bit de poids faible (LSB)
ensuite on pousse les autres bits à droite via >>1
..etc ...pour chaque byte composant le mot de 32 bits


Bonjour paul et bonjour à tous,

Je reviens au sujet du décalage de bit car j'ai eu un probleme que je ne comprends pas.
J'ai ecris le code suivant:

J'ai declaré une variable simple avec la donnée fixe suivante
variable =%10101010
et dans la boucle du code principal j'ai mis ca

Code : Tout sélectionner



for i
=0 to 7
portD 
= variable >> i
delay_ms
(500)
next i



dans la logique des chose la valeur de variable devrait être décalé toute les 500ms vers la droite d'un bit et des bits à 0 devrait apparaitre sur la gauche et bien rien ne c'est passé.
Le portD est resté figé sur la valeur de variable et c'est tous.
C'est quelques lignes était écrite dans le corps principal du code.

Est ce que c'est quelques lignes de codes comportent des erreurs?
Celons moi non il ny a rien de plus simple a moins que je sois passé a coté de quelque chose mais je ne vois pas quoi.
j'en appel à l'Energie de l'univers de la nature que ma carte électronique ..... tombe en marche

conversion longint en exadecimal
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2885
Âge : 74
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#13 Message par paulfjujo » jeu. 17 oct. 2024 11:06

for i=0 to 7
variable = variable >> 1 <--- decalage à droite 1 fois ( sans frites)
portD=variable
delay_ms(500)
next i



ou
PORTD=%10101010
for i=0 to 7
PORTD=PORTD >> 1
delay_ms(500)
next i

pulse en RD0...
Aide toi, le ciel ou FantasPic t'aidera

conversion longint en exadecimal
cyril13110
Avatar de l’utilisateur
Expert
Expert
Messages : 1231
Âge : 42
Enregistré en : avril 2016
Localisation : 13

#14 Message par cyril13110 » jeu. 17 oct. 2024 12:10

paulfjujo a écrit :for i=0 to 7
variable = variable >> 1 <--- decalage à droite 1 fois ( sans frites)
portD=variable
delay_ms(500)
next i



ou
PORTD=%10101010
for i=0 to 7
PORTD=PORTD >> 1
delay_ms(500)
next i

pulse en RD0...


Sans frite???
donc sans belge alors c'est ca??? dehors!!
j'en appel à l'Energie de l'univers de la nature que ma carte électronique ..... tombe en marche

conversion longint en exadecimal
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2885
Âge : 74
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#15 Message par paulfjujo » jeu. 17 oct. 2024 15:46

exit sans frite, 1 fois !
Aide toi, le ciel ou FantasPic t'aidera

conversion longint en exadecimal
cyril13110
Avatar de l’utilisateur
Expert
Expert
Messages : 1231
Âge : 42
Enregistré en : avril 2016
Localisation : 13

#16 Message par cyril13110 » jeu. 17 oct. 2024 16:27

mais avec ou sans moule..........poilue humour!! dehors!!
j'en appel à l'Energie de l'univers de la nature que ma carte électronique ..... tombe en marche

conversion longint en exadecimal
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1803
Âge : 66
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#17 Message par Gérard » jeu. 17 oct. 2024 18:17

Et ça marche maintenant?
Est ce que Paul a mérité une portion de frites? :lol:
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.

conversion longint en exadecimal
cyril13110
Avatar de l’utilisateur
Expert
Expert
Messages : 1231
Âge : 42
Enregistré en : avril 2016
Localisation : 13

#18 Message par cyril13110 » jeu. 17 oct. 2024 19:03

aucune idée les frites ne sont pas encore cuites dehors!!
J'ai pas encore testé
j'en appel à l'Energie de l'univers de la nature que ma carte électronique ..... tombe en marche

conversion longint en exadecimal
cyril13110
Avatar de l’utilisateur
Expert
Expert
Messages : 1231
Âge : 42
Enregistré en : avril 2016
Localisation : 13

#19 Message par cyril13110 » jeu. 17 oct. 2024 20:56

paulfjujo a écrit :for i=0 to 7
variable = variable >> 1 <--- decalage à droite 1 fois ( sans frites)
portD=variable
delay_ms(500)
next i



ou
PORTD=%10101010
for i=0 to 7
PORTD=PORTD >> 1
delay_ms(500)
next i

pulse en RD0...



J'ai testé les 2 ca fonctionne je ne vois pas pourquoi du coup celui que j'avais fait ne fonctionne pas
j'en appel à l'Energie de l'univers de la nature que ma carte électronique ..... tombe en marche

conversion longint en exadecimal
cyril13110
Avatar de l’utilisateur
Expert
Expert
Messages : 1231
Âge : 42
Enregistré en : avril 2016
Localisation : 13

#20 Message par cyril13110 » ven. 18 oct. 2024 10:16

Bonjour paul et bonjour à tous,

Je reviens sur le sujet.
Du coup hier j'ai vite testé et ca a fonctionné.
J'ai un peut bricolé autour et tous est ok.

Je suis allé jusqu'à le faire avec une variable de 32bits et le bit de poids le plus faible copié sur le PortD.0 et tous est ok.
Merci paul pour ton aide et tes lumière mais j'aimerais comprendre pourquoi ce que j'avais écrit moi c'était pas bon.
C'est quoi qui bloquait dans ce que j'avais écrit celons toi?

Maintenant il me reste plus qu'a comprendre la procedure à programmer pour l'envoie de la donnée au AD9850 avec une communication serie.
J'avoue que c'est la premiere fois que je passe par une communication serie comme ca :sifflotte: , il y a un debut a tous.

Du peut que j'ai compris, apparement il faut envoyer des grappes de 8 bits avec un creneau sur l'entré Wclk du module et tous les 8 bits faire un creneau de validation pour sauter au 8 bits suivant sur FQUD.
est ce que j'ai bien compris le bazard?
j'en appel à l'Energie de l'univers de la nature que ma carte électronique ..... tombe en marche


Retourner vers « Langage BASIC & PASCAL »

Qui est en ligne

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