Attention ! Fermeture imminente du forum d’Elektor (pour en savoir plus, cliquer ici). À partir du vendredi 15er mars il ne sera plus possible de s’identifier sur ce forum, mais son contenu restera disponible en lecture seule jusqu’à la fin du mois. Le 1er avril, il sera fermé définitivement.

UART1 interruption reception

Postby gatsby94 » Mon Aug 27, 2007 12:00 am

J'ai ouvert une discussion là dessus déjà mais je suis coincé donc je préfère réouvrir un post pour que l'on puissse me répondre.
Voilà j'utilise l'uart1 9600 bauds quartz 14,7456MHZ.
J'utilise les interruptions pour la reception

voici mon code

/*-----------------------initialisation-UART1--------------------*/

void init_uart(void)
{
unsigned char dummy;
unsigned char lect;

u1mr = 0x05; /* pas de parité / 1 stop / clock interne / 8 bits*/
u1c0 = 0x08; /* LSB first, clock f1 (14,7456MHz)*/
u1brg = 0x5F; /* 9600 bauds (=[f1 /(16*9600)]-1)*/
u1c1 = 0x07; /* Reception et emission autorisées.*/
ucon = 0xB0;

asm ("fclr i");
s1ric = 0x01;
asm ("fset i");
lect = u1rbl;
dummy = u1rbh;
}


#pragma INTERRUPT reception_trame

void reception_trame(void)
{

unsigned char dummy;
tab_reception_emission[pointeur_trame] = u1rbl;

dummy = u1rbh;
re_u1c1 = 1;
pointeur_trame ++;
temp_fin_trame = 50000;
flag_reception = 1;



}

;---------------------------------------------------------------
; variable vector section
;---------------------------------------------------------------
.section vector,ROMDATA ; variable vector table
.org VECTOR_ADR

.glb _reception_trame

.lword dummy_int ; vector 0
.lword dummy_int ; vector 1
.lword dummy_int ; vector 2
.lword dummy_int ; vector 3
.lword dummy_int ; vector 4
.lword dummy_int ; vector 5
.lword dummy_int ; vector 6
.lword dummy_int ; vector 7
.lword dummy_int ; vector 8
.lword dummy_int ; vector 9
.lword dummy_int ; vector 10
.lword dummy_int ; vector 11
.lword dummy_int ; vector 12
.lword dummy_int ; vector 13
.lword dummy_int ; vector 14
.lword dummy_int ; vector 15
.lword dummy_int ; vector 16
.lword dummy_int ; vector 17
.lword dummy_int ; vector 18
.lword dummy_int ; vector 19
.lword _reception_trame ; vector 20
.lword dummy_int ; vector 21
.lword dummy_int ; vector 22


LE fait est que je rentre en permanence dans la routine d'interruption de reception et je ne comprends pas pourquoi ?

une idée ?
gatsby94
 
Posts: 29
Joined: Fri Jan 17, 2014 4:38 pm

Postby sda » Mon Aug 27, 2007 12:00 am

Salut,
bon ok, mon aide ne t'as pas été utile vendredi dernier mais si tu es d'accord je peux encore chercher d'où vient ton problème...
En voulant essayer ton code sur une petite carte d'essai fournie par Renesas, j'ai créé un nouveau workspace (sous HEW) et à la seconde fenêtre de paramètre, j'ai la possibilité de cocher une case "Use standard I/O Library (UART1)".
Il me semble que si tu ne coche pas cette case, alors l'UART1 est dédié au débugage, peut-être quelqu'un pourrait t'il confirmer cette piste?
Peux tu essayer de cabler ton montage sur l'UART0 (l'init change un peu mais juste des 1 à mettre à 0 comme u1c0 qui devient u0c0).

SDA
sda
 
Posts: 24
Joined: Fri Jan 17, 2014 4:38 pm

Postby gatsby94 » Mon Aug 27, 2007 12:00 am

je ne suis pas sur une carte d'essai et je dois absolument utiliser l'UART1. et jen'ai rien de cabler sur les pins de l'UART0. la com de programmation se fait par les pins 3 et 8 (/reset et mode).
gatsby94
 
Posts: 29
Joined: Fri Jan 17, 2014 4:38 pm

Postby tolen » Mon Aug 27, 2007 12:00 am

Bonjour,
Plusieurs pistes possibles gatsby94:
1- Si tu debuggues via un E8 il faut savoir que l'UART1 est monopolisé pendant le debug et il est donc normal que tu partes en IT car le E8 envoie constament des trames.

2- Si tu n'utilises pas le debuggueur E8 alors c'est que ton niveau d'entrée n'est pas bon et que le micro detecte le START constamment.

Bonne continuation.
tolen
 
Posts: 6
Joined: Fri Jan 17, 2014 4:38 pm

Postby gatsby94 » Mon Aug 27, 2007 12:00 am

OUI JE DEBUGGUE VIA UN E8 !!
donc ça veut dire que les entrée mode et /reset utilise l'uart1 c ça?

COmment vais je faire pour debugger alors?
Vous avez une idée?
gatsby94
 
Posts: 29
Joined: Fri Jan 17, 2014 4:38 pm

Postby tolen » Mon Aug 27, 2007 12:00 am

En fait la logique interne de l'UART1 est monopolisée en mode debug, pas les pin qui elles restent libres.
C'est une limitation connue du E8 les façons de contourner sont :
- investissement sur un compact emulateur R8C (valide pour les societés qui ont 1500 euros environ a investir).
- Debug en mode "aveugle" pour la partie qui concerne l'UART1 (flashage du code et test).
Certaines personnes se developpent des petites routines d'emission de caracteres pour tracer leur code.

Désolé mais je vois pas mieux.
tolen
 
Posts: 6
Joined: Fri Jan 17, 2014 4:38 pm

Postby gatsby94 » Mon Aug 27, 2007 12:00 am

pour info voici ma configuration en pièce jointe
Attachments

[The extension bmp has been deactivated and can no longer be displayed.]

gatsby94
 
Posts: 29
Joined: Fri Jan 17, 2014 4:38 pm

Postby gatsby94 » Mon Aug 27, 2007 12:00 am

ok ben on va debugger à l'aveugle .
merci à tous
gatsby94
 
Posts: 29
Joined: Fri Jan 17, 2014 4:38 pm


Return to R8C/13 (01-2006)

Who is online

Users browsing this forum: No registered users and 0 guests

cron