Just nu i M3-nätverket
Jump to content

printf special


tomashag

Recommended Posts

Jag vill använda printf för att skriva ut på en uart i en microcontroller. Jag har en funktion som ser ut så här:

 

void putch(unsigned char byte)

{

while(!TXIF && !RTS);

TXREG = byte;

}

 

Hur får jag printf att använda denna funktion för att skicka ut tecken?

 

/Tomas

Link to comment
Share on other sites

Det tror jag inte att du kan göra med printf(). Men du kan i stället använda sprintf() som skriver ut till en sträng och den strängen kan du sedan snurra igenom och använda din egen putch() för varje tecken.

Link to comment
Share on other sites

Jag har försökt med :

#define STDOUT putch();

och det verkar faktiskt fungera. Jag har inte kört det på hårdvaran ännu men i assemblerlistan verkar det som om printf använder putch! Vi får väl se när jag får igång hårdvaran.

 

/Tomas

Link to comment
Share on other sites

Nu har jag kört printf i hårdvaran och omdirigeringen fungerar! Tyvärr så skickar den ut kommatecken mellan varje tecken när jag använder %c. Kan man komma ifrån det på något sätt? Jag måste använda %c eftersom jag tar data från olika håll.

 

/Tomas

Link to comment
Share on other sites

Det är inte normalt att printf lägger ut kommatecken när man använder %c. Kolla att du inte har fått in något kommatecken i formatuttrycket ("%c%c" eller hur det nu ser ut).

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...