Commande PIC 68HC11E2

Signaler
Messages postés
22
Date d'inscription
jeudi 23 février 2006
Statut
Membre
Dernière intervention
31 mars 2006
-
Messages postés
22
Date d'inscription
jeudi 23 février 2006
Statut
Membre
Dernière intervention
31 mars 2006
-
salut à tous
comment je peut tester un bit de port c de pic 68HC11E2 et commander un clignotement de 4 lampe (si le bit x de port c est vrais fait un clignotement).
si possible m'aider par un exemple de programme qui fait ce travail.

8 réponses

Messages postés
36
Date d'inscription
vendredi 22 juillet 2005
Statut
Membre
Dernière intervention
18 août 2006

pour tester un bit tu peux simplement faire ça....



int get_bit_at_pos(int iChamp, iPosition )

{

return ( ( iChamp >> iPosition ) & 0x01 );

}
Messages postés
22
Date d'inscription
jeudi 23 février 2006
Statut
Membre
Dernière intervention
31 mars 2006

salut mathusale
je crois que tu ma donnée le test en langage c mais je veut le faire en langage assembleur avec le jeu d'instructions de 68hc11e2.
merci
Messages postés
36
Date d'inscription
vendredi 22 juillet 2005
Statut
Membre
Dernière intervention
18 août 2006

ah en assembleur ca peut donner ça ....



penons la fonction



int get_bit_at_pos(int iChamp, iPosition )

{

return ( ( iChamp >> iPosition ) & 0x01 );

}





en asm ça donne



MOV EAX, [EBP +8]

XOR ECX, ECX

BOUCLE : CMP ECX, [EBP + 4]

JL ALORS

JE FIN_BOUCLE



ALORS: DIV EAX, 2

INC ECX



FIN_BOUCLE: AND EAX, 0x01


ret EAX



Un truc du genre koi
Messages postés
36
Date d'inscription
vendredi 22 juillet 2005
Statut
Membre
Dernière intervention
18 août 2006

Bon il faut savoir qu'il existe des operateurs en asm qui font les décallage mais je ne m'en rappel plus....( honte à moi )
Messages postés
36
Date d'inscription
vendredi 22 juillet 2005
Statut
Membre
Dernière intervention
18 août 2006

Rectification !!!!



int get_bit_atpos(int iVal, int iPos)

{

asm

{

mov eax, [ebp + 0x08]

xor ecx, ecx



boucle: cmp ecx, [ebp + 0x0C]

jl alors

jmp fin



alors: shr eax, 1

inc ecx

jmp boucle



fin: and eax, 0x01

}

}

shr permet de décaller des bits vers la droite

shl permet de décaller des bits vers la gauche
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
26
[ebp + 8]
qui autorise à présumer qu'il compilera avec stackframe ???
Pourquoi forcer le compilo à une sauvegarde d'EBP alors que son emploi est inutile ???

La version C est indéniablement la meilleure et la seule viable, si la fonction n'est pas dépouillée par un __declspec(naked) devant alors hors le dev du projet final il est impossible d'insérer le moindre asm sans d'énormes risques.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
Messages postés
36
Date d'inscription
vendredi 22 juillet 2005
Statut
Membre
Dernière intervention
18 août 2006

Oui pardon, j'ai juste vite fait un copier coller hier soir c'est pour ça !!!!
Messages postés
22
Date d'inscription
jeudi 23 février 2006
Statut
Membre
Dernière intervention
31 mars 2006

merci beaucoup
c'est malgré que ce programme pour la famille intel moi je possède comme j'ai déja indiqué 68HC11E2 de la famille motorola mais je vais essayé de prindre le principe.
merci