begin process at 2012 05 25 09:57:18
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Assembleur

 > 

Divers

 > 

Débutant(e)

 > 

Reception de caractère et tri


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Reception de caractère et tri

lundi 22 mai 2006 à 11:55:06 | Reception de caractère et tri

fufaru

Bonjour à tous,

Je travaille sur un dsPIC30F avec une liaison série MAX232 et un pc (Matlab v7.31).  Je suis débutant en assembleur

je dois récupérer un caractère que j'envoie par le biais de l'hyperterminal, bon la liaison marche ya pas de problème, mais je dois (en assembleur) lui faire reconnaître si c'est une lettre ou un chiffre.

Il met bien venu à l'idée de soustraire la valeur du 0 en ASCII(48) a la valeur reçu puis defaire pareil pour les lettres : soustraire la valeur de A-10 (55)

mais voila, le problème c'est que je ne sais pas comment faire pour qu'il prenne en compte les deux, pour que lorsque j'envoie un caractère il fasse soit l'un soit l'autre.

En espérant avoir été assez clair, et en espérant une aide de votre part
je vous remercie par avance
lundi 22 mai 2006 à 12:42:55 | Re : Reception de caractère et tri

patatalo

Membre Club Administrateur CodeS-SourceS
salut,




si c'est sur le PC, il faut simplement dupliquer la valeur a comparer
mov ah,al
sub al,'0'
je nombre
cmp al,'9'-'0'
mov al,ah
jbe nombre
sub al,'A'
je charMaj
sub al,'Z'-'A'
mov al,ah
jbe charMaj
sub al,'a'
je charMin
sub al,'z'-'a'
jbe charMin

si c'est sur le PIC, le principe est le meme: dupliquer la valeur a comparer ou la sauvegarder en memoire pour pouvoir la restaurer avant traitement.

@++
lundi 22 mai 2006 à 12:44:33 | Re : Reception de caractère et tri

patatalo

Membre Club Administrateur CodeS-SourceS
pardon,





remplacer les sub al,'x'-'y' par des cmp
@++
lundi 22 mai 2006 à 13:42:33 | Re : Reception de caractère et tri

fufaru

ok mais voila j'ai un autre problème en fait j'ai quatre caractère a recevoir donc pour cela j'ai ouvert un espace de 8 octets comme cela :

 .section .nbss, bss, near

carac_1:   .space 8

Mais ensuite je n'arrive pas a stocker les caractères au fur et a mesure, j'arive a stocker le premier dans carac_1 a l'adresse 0x0800 mais comment faire pour stocker les autres sachant que j'en ai quatres a stocker dans l'espace carac_1 , il me manques un peti bout de programme ici (la ou ya les étoiles):
__T1Interrupt:
  
_SetMessage:       MOV #U1RXREG, W1
                                MOV #60, W4
                                MOV #62, W3
                                CP W4, W1
                                BTSC SR, #Z
                                BRA  _SetMessage   
                                CP  W3, W1
                                BTSS SR, #Z
                                BRA  _Read
                                BSET IFS1, #0
                                BRA  _EndMessage
_Read:                   MOV W1, carac_1   *********
                               MOV carac_1            ********
                               BRA  _SetMessage    
_EndMessage:    BCLR IFS0, #T1IF          ;Clear the Timer1 Interrupt flag status bit.
                               RETFIE    

Merci pour vos réponses              

lundi 22 mai 2006 à 18:52:01 | Re : Reception de caractère et tri

patatalo

Membre Club Administrateur CodeS-SourceS
re,




si 1 caractère pour une interruption, tu dois mettre en place un compteur de 0 a 3, tu masque le compteur avec 3 en entrée et tu l'incremente en sortie.
le compteur te donnera la position.


si 4 caractères pour une interruption, mov W1,carac_1+2,...
je ne connais pas les commandes des PICs donc je ne peux pas t'ecrire le code correspondant.

@++


Cette discussion est classée dans : valeur, caractère, tri, liaison, reception


Répondre à ce message

Sujets en rapport avec ce message

valeur retournée [ par gblade ] selon la convention ANSI-C/C++ qd une fonction retourne une valeur plus grde que 32bits, elle est stockée ou ? dans edx:eax ? Simple addition [ par nostra ] Big totoJe n'arrive pas à afficher les valeurs A (=3) et B(=2) ainsi que le résultat de l'addition. Merci de trouver le ou les erreurs commises.;----- Addition pourtant simple [ par nostra ] Big totoJe n'arrive pas à afficher le résultat de l'addition malgré les remarques de Nemesis. Merci de trouver le ou les erreurs commises. ;---------- liaison rs232 avec pic16f84a [ par Lastar ] Bonjour à tous, voila je voudrais allumer et éteindre une led à partir du clavier d'un PC. J'ai donc pour cela mis un MAX232CPE avec le pic. Le prob envoie d'un caractère par liaison série en asm/C [ par lordankou ] bon voila j'ai un programme en C qui appelle une procédure en assembleur et cette dernière doit retourner un caractère. j'ai donc écrit le programme s Ecriture de chaîne [ par Laurent1313 ] Salut,Je cherche à modifier une chaîne en assembleur. Je prends donc un caractère, je fais un traitement dessus puis je recopie le caractère dans la c communication par liaison rs232 vers LCD graphic [ par lcoumar ] Bonjours!voilà je suis débutant en asembleur, j'envoie d'un pc des chaines de caractère vers un afficheur LCD graphic(type hitachi LMG6912)via la liai Coversions [ par Gandalfthewhite ] salut à tous et toutes, je débute en programmation assembleur et on me demande différentes conversions: - caractère --> décimal (ex: A -->65)- décimal Conversions (clarifications) [ par Gandalfthewhite ] salut à tous et toutes, je débute en programmation assembleur et on me demande un programme qui effectue différentes conversions avec procédures et pa ax to string... [ par ennixo ] comment je peux faire pour transformer la valeur de ax en valeur affichage à l'aide d'une interruption dos ?merci


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 18,221 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales