problème en ansi C

Un problème informatique? Une question? Bref tout ce qui a un rapport avec l'informatique, les virus, les questions d'utilisation de logiciels...

Modérateurs : Naveed, GregLand

Répondre
BoumBoazerty2

problème en ansi C

Message par BoumBoazerty2 »

Bonjour, je suis un pauvre amatteur en C, et je travaille en ce moment sur une carte de devellopement en HCS12 pour les amateurs.

Les registres sont configurés nickel mais mon code en ansi C ne tourne pas rond pas moyen de faire tourner ce fichu code pour recuperer des caractères sur une liaison serie; quelqu'un peut'il me donner un coup de main...
Merci d'avance

Code : Tout sélectionner

void init_serie(void)
{
	SCI0BDH=0x00;    /*Baud rate SBR12..SBR8=0*/     
	SCI0BDL=0x0D;    /*9600 Bauds Attetion Freq SCI=2Mhz!!!*/ 
	SCI0CR1=0x00;    /*control bits LOOPS=SCISWAI=RSRC=M=WAKE=ILT=PE=PT=0*/
	SCI0CR2=0x0C;    /*control bits TR=TE=1*/
}

void send_carac(char c)
{       
  while((SCI0SR1) == 0){};
  SCI0DRL = c;
}

void send_string( unsigned char * s)
{
  while(*s)
  send_carac(*s++);
}

void main(void)
{
  init_serie();
  while(1)
   {
   send_string("....Ceci est un test....");
   send_carac(CR);
   send_carac(LF);
   }
}
GregLand
Programmeur & Administrateur
Programmeur & Administrateur
Messages : 4431
Enregistré le : 10 oct. 2003 09:36
Langage de programmation connu : Utilisés régulièrement :
- Visual DialogScript
- WinDev
- AutoIt
- AutoHotkey
- Html, Js, Vbs, PHP

Utilisés très peu :
- C et C++
- VB et VB.Net (pour les DLL)
- Java (Pour Android)
- ASM (pour désassembler)
- Python (quand je m'ennuie)
- et quelques autres....
Localisation : Les Damps (27)
Contact :

Message par GregLand »

Tu ne déclare pas tes fonctions ? :o
SCI0BDH il faut le déclarer avant ! :?

Rassures toi... on a un pro du C sur ce forum... Naveed c'est a toi... moi c'est le Java, l'asm, le VB et le Delphi :D
c caca le C :langue:
Config :
Image
Naveed
Messages : 2001
Enregistré le : 13 sept. 2003 13:03
Localisation : 91 (Essonne)
Contact :

Message par Naveed »

Rassures toi... on a un pro du C sur ce forum... Naveed c'est a toi...
MDRRRRRRRRR :D
merci greg de m'envoyer à la mort :shoot:
lol si c moi qui corrige, alors là, on est pas dans la m*rde !!! :P
suis juste initié au C mouaaa , sans plus lol :oops: :oops:
moi c'est le Java, l'asm...

:o l'ASM ?? tiens c nouvo, ça, sans déconner? :langue:
hum hum mister greg , c pas sans me rappeler un tit souvenir récent lol :wink: :)

Naveed :angel:
:: Naveed ::
Site : http://naveed.free.fr
Livre d'or : http://www.swisstools.net/guestbook.asp?id=27217
"Loin de moi toute prétention de génie, mais si je puis vous aider..."
Image
GregLand
Programmeur & Administrateur
Programmeur & Administrateur
Messages : 4431
Enregistré le : 10 oct. 2003 09:36
Langage de programmation connu : Utilisés régulièrement :
- Visual DialogScript
- WinDev
- AutoIt
- AutoHotkey
- Html, Js, Vbs, PHP

Utilisés très peu :
- C et C++
- VB et VB.Net (pour les DLL)
- Java (Pour Android)
- ASM (pour désassembler)
- Python (quand je m'ennuie)
- et quelques autres....
Localisation : Les Damps (27)
Contact :

Message par GregLand »

Pardon... le désassemblage ! :bravo:
J'ai trompé ! :oops:
Config :
Image
Nevada Smith
Messages : 16
Enregistré le : 15 sept. 2003 23:28

Message par Nevada Smith »

Greg a écrit :Tu ne déclare pas tes fonctions ?
SCI0BDH il faut le déclarer avant !
a mon avis cé un registre et t'a un include spéciale pour le proc..
sinon j'connais ke le 87c51 et j'code plutot en asm la d'ssus...

le while((SCI0SR1) == 0){}; cé pour etre sur ke le buffer
de sortie est vide avant d'envoyer le byte je suppose....
cé un bit ou un registre le SCIOSR1 ??
si cé un registre fo plutot faire un filtre sur un bit particulier nan??
du genre while((SCI0SR1 & bit_buffer_vide) == 0);
sinon aucune idée pour ton prob...dsl..

le HC12 cé com le HC11 du niveau registre??
si cé l'cas j'connais un pro du HC11 qu'a deja fais d'la rs232 avec...
(la suite qd j'aurais vu mon pote...)
Bidouille tout et n'importe koi du moment k'on s'eclate!!!
BoumBoazerty2

Message par BoumBoazerty2 »

Nevada Smith a écrit :
Greg a écrit :Tu ne déclare pas tes fonctions ?
SCI0BDH il faut le déclarer avant !
a mon avis cé un registre et t'a un include spéciale pour le proc..
sinon j'connais ke le 87c51 et j'code plutot en asm la d'ssus...

le while((SCI0SR1) == 0){}; cé pour etre sur ke le buffer
de sortie est vide avant d'envoyer le byte je suppose....
cé un bit ou un registre le SCIOSR1 ??
si cé un registre fo plutot faire un filtre sur un bit particulier nan??
du genre while((SCI0SR1 & bit_buffer_vide) == 0);
sinon aucune idée pour ton prob...dsl..

le HC12 cé com le HC11 du niveau registre??
si cé l'cas j'connais un pro du HC11 qu'a deja fais d'la rs232 avec...
(la suite qd j'aurais vu mon pote...)
Oui c kifkif!! mais bien c bien plus recent (des periph en plus c plus rapide plus de fonction...C AUSSI BCP PLUS CHER et pas dispo à l'unité sauf avec une carte d'eval)
GregLand
Programmeur & Administrateur
Programmeur & Administrateur
Messages : 4431
Enregistré le : 10 oct. 2003 09:36
Langage de programmation connu : Utilisés régulièrement :
- Visual DialogScript
- WinDev
- AutoIt
- AutoHotkey
- Html, Js, Vbs, PHP

Utilisés très peu :
- C et C++
- VB et VB.Net (pour les DLL)
- Java (Pour Android)
- ASM (pour désassembler)
- Python (quand je m'ennuie)
- et quelques autres....
Localisation : Les Damps (27)
Contact :

Message par GregLand »

Puré, moi g décroché là... :?
Config :
Image
Nevada Smith
Messages : 16
Enregistré le : 15 sept. 2003 23:28

Message par Nevada Smith »

BoumBoazerty2 a écrit :Oui c kifkif!! mais bien c bien plus recent (des periph en plus c plus rapide plus de fonction...C AUSSI BCP PLUS CHER et pas dispo à l'unité sauf avec une carte d'eval)
j'te confirme sinon ke tu dois tester un bit en particulier dans le
registre SCI0SR1 sinon j'pense pas ke sa marche tres fort ton prog...
mais en fait cé le bit a '1' ke tu dois tester car indique la presence
d'un caractere dans le buffer
un truc com ca :

void send_carac(char c)
{
// attendre bit = '0' pour envoyer le prochain caractere
while(SCIOR1 & bit_status_buffer_vide) == 1);
// envoyer le caractere
SCI0DRL = c;
}

(j'connais pas le HC12 par contre...a toi de voir ds la doc ) :roll:
Bidouille tout et n'importe koi du moment k'on s'eclate!!!
boumboazerty2

Merci

Message par boumboazerty2 »

Merci pour ces conseils avisés Nevada Smith, C CODE marche, j'avais mal fait mes calculs pour SCI0BDL=0x0D, j'avais pas pris la bonne frequence pour le quartz...
Bravo au fait Naveed :shoot:
Le C c'est pas ton truc?????? :?:
Naveed
Messages : 2001
Enregistré le : 13 sept. 2003 13:03
Localisation : 91 (Essonne)
Contact :

Message par Naveed »

Bravo au fait Naveed :shoot:
:o :o ehhhh pas si fort :evil: c dangereux une arme !! :D
(merci du petit mot , c trop gentil à vous... :| no comment...)

:arrow: Le C c'est un langage que je suis en train d'apprendre mais je suis encore débutant et loin de ton niveau donc c'est tout à fait normal que je n'ai pas pu te répondre, préférant laisser la parole à une personne plus compétente.
ce que j'ai vu en C, c des ptits exos de calculs de factoriel et trucs ds le genre.
Rien à voir avec la programmation de microcontroleur ou communication série ou je ne sais quoi d'autres :!:
greg : on a un pro du C sur ce forum... Naveed c'est a toi
:twisted: GREG you're DEAD :shoot: grrr
:: Naveed ::
Site : http://naveed.free.fr
Livre d'or : http://www.swisstools.net/guestbook.asp?id=27217
"Loin de moi toute prétention de génie, mais si je puis vous aider..."
Image
Nevada Smith
Messages : 16
Enregistré le : 15 sept. 2003 23:28

Message par Nevada Smith »

boumboazerty2 a écrit :Merci pour ces conseils avisés Nevada Smith, C CODE marche, j'avais mal fait mes calculs pour SCI0BDL=0x0D, j'avais pas pris la bonne frequence pour le quartz...
le principal cé ke ca marche.....
moi j'matte tjours a l'oscillo si jé la bonne frequence sur
la rs232, histoire de controler les valeurs du registre 8)
(ou celle du quartz.....tu :sleep: ou koi ?? )


Naveed a écrit :Le C c'est un langage que je suis en train d'apprendre mais je suis encore débutant et loin de ton niveau donc c'est tout à fait normal que je n'ai pas pu te répondre, préférant laisser la parole à une personne plus compétente.
ce que j'ai vu en C, c des ptits exos de calculs de factoriel et trucs ds le genre.
Rien à voir avec la programmation de microcontroleur ou communication série ou je ne sais quoi d'autres
merdouille, moi ki pensais ke tété un pro du c,
jchsuis deçu la !!! :cry: :wink:
Bidouille tout et n'importe koi du moment k'on s'eclate!!!
Naveed
Messages : 2001
Enregistré le : 13 sept. 2003 13:03
Localisation : 91 (Essonne)
Contact :

Message par Naveed »

ah oui, c vrai que je devais te donner qq cours particuliers Nevada :D :D :P

merci d'être passé mister :bravo:
:: Naveed ::
Site : http://naveed.free.fr
Livre d'or : http://www.swisstools.net/guestbook.asp?id=27217
"Loin de moi toute prétention de génie, mais si je puis vous aider..."
Image
Répondre