Just nu i M3-nätverket
Gå till innehåll

printf special


tomashag

Rekommendera Poster

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

Länk till kommentar
Dela på andra webbplatser

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.

Länk till kommentar
Dela på andra webbplatser

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

Länk till kommentar
Dela på andra webbplatser

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

Länk till kommentar
Dela på andra webbplatser

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).

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...