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 ---
- 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 ---
[En cours] débuguer vos programme grâce a l'utilisation de l'uart et d'un terminal pc
Bonjour,
Voici un tutoriel en asm utile pour débuguer vos programme grâce a l'utilisation de l'uart et d'un terminal pc
Il est la suite du tuto fait par Temps-x, voir à ce sujet ici :http://www.fantaspic.fr/viewtopic.php?f=16&t=525
Je ne reprendrai donc les infos déjà évoqué dans son sujet
Les infos ci dessous proviennent des cours fait par mr Bigonoff adapté a ma sauce
___________________________________________________________________________________________________________________
Le principe
Nous allons utiliser pour cela L'UARTqui utilise les broches Rx (RB2) et Tx (RB5) pour le 16F88
____________________________________________________
Matériel nécessaire
Module a connecter sur le port usb de l'ordinateur
http://www.ebay.fr/itm/FT232RL-FTDI-USB ... Sw~XpZQX~S
Il sert a convertir les signaux en 0 et 5 volts compatible avec les signaux TTL de nos pics favoris. il suffit de relier la broche tx du pic au rx du module
logiciel a utiliser sur l'ordinateur
programmes "terminal" tels que Teraterm https://osdn.net/projects/ttssh2/downloads/66795/teraterm-4.93.exe/
_______________________________________________________________
La ligne de commande
Il suffira d'ajouter une simple ligne de commande dans le programme, je ne peut pas faire plus simple, encore plus facile qu'en C
Message permet de faire appel a une macro auquel il suffira de Remplir les guillemets du message souhaité, un seul caractère par guillemet donc une chaîne de 8 caractères sera envoyé a la macro. il suffira de placé cette commande aux endroits stratégique du programme pour connaître son évolution.
La macro s'occupera d'envoyer la chaîne dans l'uart et de gérer la transmission de celle ci. cette ligne pourra être répété a volonté dans le programme
______________________________________________________________________________________________________________________________
première étape, déclaration des variables
Nous avons besoin de stocker les caractères a envoyer, donc une réservation de la mémoire devra être déclarer en banque 0
deuxième étape, la mise en route de l'uart
nous allons travailler a la vitesse de 9600 bauts/seconde, sur 8 bits
Dans la partie initialisation, nous allons rajouté ces quelques lignes de code pour configurer l'Usart
autoriser les interuptions dans la partie initialisation
dans la partie interuption, il faut rajouté la detection
et le sous programme qui va avec
et bien sur la macro a déclarer avant son premier appel
Sujet non terminé, en cours de traitement
Voici un tutoriel en asm utile pour débuguer vos programme grâce a l'utilisation de l'uart et d'un terminal pc
Il est la suite du tuto fait par Temps-x, voir à ce sujet ici :http://www.fantaspic.fr/viewtopic.php?f=16&t=525
Je ne reprendrai donc les infos déjà évoqué dans son sujet
Les infos ci dessous proviennent des cours fait par mr Bigonoff adapté a ma sauce
___________________________________________________________________________________________________________________
Le principe
Nous allons utiliser pour cela L'UARTqui utilise les broches Rx (RB2) et Tx (RB5) pour le 16F88
____________________________________________________
Matériel nécessaire
Module a connecter sur le port usb de l'ordinateur
http://www.ebay.fr/itm/FT232RL-FTDI-USB ... Sw~XpZQX~S
Il sert a convertir les signaux en 0 et 5 volts compatible avec les signaux TTL de nos pics favoris. il suffit de relier la broche tx du pic au rx du module
logiciel a utiliser sur l'ordinateur
programmes "terminal" tels que Teraterm https://osdn.net/projects/ttssh2/downloads/66795/teraterm-4.93.exe/
_______________________________________________________________
La ligne de commande
Il suffira d'ajouter une simple ligne de commande dans le programme, je ne peut pas faire plus simple, encore plus facile qu'en C
Code : Tout sélectionner
MESSAGE "O","p","e","n"," ","1"," "," "," "," "
Message permet de faire appel a une macro auquel il suffira de Remplir les guillemets du message souhaité, un seul caractère par guillemet donc une chaîne de 8 caractères sera envoyé a la macro. il suffira de placé cette commande aux endroits stratégique du programme pour connaître son évolution.
La macro s'occupera d'envoyer la chaîne dans l'uart et de gérer la transmission de celle ci. cette ligne pourra être répété a volonté dans le programme
______________________________________________________________________________________________________________________________
première étape, déclaration des variables
Nous avons besoin de stocker les caractères a envoyer, donc une réservation de la mémoire devra être déclarer en banque 0
Code : Tout sélectionner
tx : 20 ;soit 20 octets pour l'envoie des données
bufoutptr : 1 ; un octet pour son pointeur
deuxième étape, la mise en route de l'uart
nous allons travailler a la vitesse de 9600 bauts/seconde, sur 8 bits
Dans la partie initialisation, nous allons rajouté ces quelques lignes de code pour configurer l'Usart
Code : Tout sélectionner
; pour un quartz de 4 Mhz
; (4000000/(9600*16))-1
; (4000000/153600)-1 = 25,0416 nous prendrons 25
;
; pour un quartz a 20 Mhz
; (20000000/153600)-1= 129,2083 donc nous prendrons 129
;
BRGVAL EQU D'129' ; pour un débit de 9615 bauds en mode high-speed
;**********************************************************************
Code : Tout sélectionner
; initialiser USART
; -----------------
movlw B'00000100' ; émission sur 8 bits, mode haute vitesse
movwf TXSTA ; dans registre de contrôle
movlw BRGVAL ; valeur pour baud rate generator
movwf SPBRG ; dans SPBRG
bcf STATUS,RP0 ; passer banque 0
movlw B'10000000' ; module USART en service, réception 8 bits
movwf RCSTA ; dans registre de contrôle
autoriser les interuptions dans la partie initialisation
Code : Tout sélectionner
bsf INTCON,PEIE ; autoriser interruptions périphériques
dans la partie interuption, il faut rajouté la detection
Code : Tout sélectionner
; Interruption transmission USART
; -------------------------------
intsw1
bsf STATUS,RP0 ; sélectionner banque1
btfss PIE1,TXIE ; tester si interrupt autorisée
goto restorereg ; non sauter
bcf STATUS,RP0 ; oui, sélectionner banque0
btfss PIR1,TXIF ; oui, tester si interrupt en cours
goto restorereg ; non sauter
call inttx ; oui, traiter interrupt
et le sous programme qui va avec
Code : Tout sélectionner
inttx
; prendre octet à envoyer
; -----------------------
bcf STATUS,IRP ; pointer banques 0 et 1
movf bufoutptr,w ; charger pointeur d'octets
movwf FSR ; dans pointeur
movf INDF,w ; charger octet à envoyer
; envoyer octet
; -------------
movf INDF,w ; charger octet à envoyer
bcf STATUS,RP0 ; passer banque 0
movwf TXREG ; envoyer octet + parité
incf bufoutptr,f ; pointer sur octet suivant
; tester si dernier octet
; -----------------------
xorlw 0x0A ; comparer octet envoyé avec Line-feed
btfss STATUS,Z ; égalité?
return ; non, retour d'interruption
; traiter fin d'émission
; ----------------------
bsf STATUS,RP0 ; passer en banque 1
bcf PIE1,TXIE ; fin des interruptions émission USART
bcf STATUS,RP0 ; repasser banque 0
movlw LOW tx ; adresse du buffer de sortie
movwf bufoutptr ; prochain caractère = premier
return
et bien sur la macro a déclarer avant son premier appel
Code : Tout sélectionner
MESSAGE macro a1,a2,a3,a4,a5,a6,a7,a8,a9,a10 ; macro avec passage de parametre
bcf STATUS,RP0
bcf STATUS,RP1 ; banque 0 par securité
movlw a1 ; charger argument 1
movwf tx ; dans chaine
movlw a2 ; charger argument 2
movwf tx+1 ; dans chaine
movlw a3
movwf tx+2
movlw a4
movwf tx+3
movlw a5
movwf tx+4
movlw a6
movwf tx+5
movlw a7
movwf tx+6
movlw a8
movwf tx+7
movlw a9
movwf tx+8
movlw a10
movwf tx+9
movlw 0x0D ; charger carriage return
movwf tx+11
movlw 0x0A ; charger line-feed
movwf tx+12
bsf STATUS,RP0
bcf STATUS,RP1 ; passer banque 1
bsf PIE1,TXIE ; lancer le message banque 1
btfsc PIE1,TXIE ; message précédent envoyé? banque1
goto $-1 ; non, attendre
btfss TXSTA,TRMT ; buffer de sortie vide? banque 1
goto $-3 ; non, attendre
bsf PIE1,RCIE ; réautoriser interruption réception banque 1
bcf STATUS,RP0 ; passer banque 0
endm
Sujet non terminé, en cours de traitement
[En cours] débuguer vos programme grâce a l'utilisation de l'uart et d'un terminal pc
Retourner vers « Langage ASM »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 23 invités