H: putchar problem i CodeComposer för MSP430
- ChristianS
- Inlägg: 229
- Blev medlem: 7 januari 2009, 11:13:58
- Ort: Limhamn
H: putchar problem i CodeComposer för MSP430
Sitter med MSP430F2274 och Code composer från texas, har lite problem med att få min putchar rutin att fungera.
i stdio.h är den putchar definierad som extern _CODE_ACCESS int putchar(int _x); alltså med integer. Således skrev jag min rutin efter det
int void putchar(int _x)
{
_x -=32; // remove offset in ascii table
char n,data;
for(n=0;n<5;n++)
{
data=characters[_x * 5 + n];
send_data(data);
}
return(0);
}
Compilatorn svarar då med:
invalid combination of type specifiers Battmeter HDSP2911.c line 139 1296405214312 36
(line 139 är första raden i kodexemplet ovanför)
pvovat med att byta till char men får lite andra bekymmer då den är deklarerad som int i stdio.h
Hoppas att det finns hjälp här, har kollat lite på TI's forum och hittat att andra haft problem men det har inte presenterats någon lösning i trådarna.
i stdio.h är den putchar definierad som extern _CODE_ACCESS int putchar(int _x); alltså med integer. Således skrev jag min rutin efter det
int void putchar(int _x)
{
_x -=32; // remove offset in ascii table
char n,data;
for(n=0;n<5;n++)
{
data=characters[_x * 5 + n];
send_data(data);
}
return(0);
}
Compilatorn svarar då med:
invalid combination of type specifiers Battmeter HDSP2911.c line 139 1296405214312 36
(line 139 är första raden i kodexemplet ovanför)
pvovat med att byta till char men får lite andra bekymmer då den är deklarerad som int i stdio.h
Hoppas att det finns hjälp här, har kollat lite på TI's forum och hittat att andra haft problem men det har inte presenterats någon lösning i trådarna.
Re: H: putchar problem i CodeComposer för MSP430
Använd gärna "CODE"-taggar för koden. Det blir så mycket lättare att läsa då.
Re: H: putchar problem i CodeComposer för MSP430
Det går ju inte att ha en "int void putchar(int _x)"
Antingen är den int, annars är den void! Välj!
Antingen är den int, annars är den void! Välj!
Re: H: putchar problem i CodeComposer för MSP430
Naturligtvis helt rätt. Jag lyckades givetvis missa detta uppenbara.
- ChristianS
- Inlägg: 229
- Blev medlem: 7 januari 2009, 11:13:58
- Ort: Limhamn
Re: H: putchar problem i CodeComposer för MSP430
Har hittat lite exempelkod och de skriver faktiskt och som jag sade innan är den deklarerad i stdio.h som
int före är för att returnera ett värde, om man nu vill det men jag kör enligt exemplet.
jag har provat lite olika kombinationer av ändringar men inget hjälper det blir bara mer fel om jag ändrar.

Kod: Markera allt
int void(int c){}
Kod: Markera allt
extern _CODE_ACCESS int putchar(int _x);
jag har provat lite olika kombinationer av ändringar men inget hjälper det blir bara mer fel om jag ändrar.

Re: H: putchar problem i CodeComposer för MSP430
Men du skriver inte
i koden, utan
enligt standard är det väl
Kod: Markera allt
int void(int c){}
Kod: Markera allt
int void putchar(int _x)
Kod: Markera allt
int putchar(int _x)
- ChristianS
- Inlägg: 229
- Blev medlem: 7 januari 2009, 11:13:58
- Ort: Limhamn
Re: H: putchar problem i CodeComposer för MSP430
Amen va f-n vad trött jag blir på mig själv
Tips: sitt aldrig och programmera med hög feber, det tar lång tid att fatta till och med när man blir skriven på näsan.
Tack för hjälpen

Tack för hjälpen

Re: H: putchar problem i CodeComposer för MSP430
He he. Ja, bra att det löste sig iallafall. Har man väl sett någonting på ett sätt, så kvittar det ibland hur många ggr man läser om det. Det ser ändå rätt ut...
- ChristianS
- Inlägg: 229
- Blev medlem: 7 januari 2009, 11:13:58
- Ort: Limhamn
Re: H: putchar problem i CodeComposer för MSP430
Jo så är det, fast nu kommer nya problem med putchar förmodligen någon inställnings grej.
Nu kvider kompilatorn om att putchar finns i min fil för displayen samt i någon fputc.obj. Suck jag som trodde att printf skulle förenkla det inte krångla till det.
Jag funderar starkt på att gå tillbaka till min ursprungliga röriga men fungerande kod.
Nu kvider kompilatorn om att putchar finns i min fil för displayen samt i någon fputc.obj. Suck jag som trodde att printf skulle förenkla det inte krångla till det.
Jag funderar starkt på att gå tillbaka till min ursprungliga röriga men fungerande kod.
Re: H: putchar problem i CodeComposer för MSP430
Har du läst det här?
http://processors.wiki.ti.com/index.php ... ned_device
Du kan även skriva din egen "printf" med hjälp av vsprintf:
http://processors.wiki.ti.com/index.php ... ned_device
Du kan även skriva din egen "printf" med hjälp av vsprintf:
Kod: Markera allt
void lcd_putchar(char _x)
{
_x -=32; // remove offset in ascii table
char n,data;
for(n=0;n<5;n++)
{
data=characters[_x * 5 + n];
send_data(data);
}
}
void lcd_putstr(char *str)
{
while(*str) {
lcd_putchar(*str++);
}
}
#define TMPSTRSIZE 80
static char tmpstr[TMPSTRSIZE];
void lcd_printf(const char *format, ...)
{
va_list args;
va_start(args, format);
vsnprintf(tmpstr, TMPSTRSIZE, format, args);
lcd_putstr(tmpstr);
}
Re: H: putchar problem i CodeComposer för MSP430
Jag har också testat att ändra putch() i några projekt men har inte lyckats då den egentligen bara är en #define av något annat, exakt vad beror på kompilern.
Lite störande då det ville vara enklare i många tillfällen.
Nu använder jag sprintf() och skriver till en buffer och detta skickar jag sedan till den buffer som behövs för att interrupten ska kunde klarar resten. Då kan jag köra UART, LCD och allt direkt.
Den ena gång jag faktisk har lyckats med att göra egen putch() hade jag en växel som jag ställde, den växel avgjorde om utdata gick till LCD, UART eller annat.
Lite störande då det ville vara enklare i många tillfällen.
Nu använder jag sprintf() och skriver till en buffer och detta skickar jag sedan till den buffer som behövs för att interrupten ska kunde klarar resten. Då kan jag köra UART, LCD och allt direkt.
Den ena gång jag faktisk har lyckats med att göra egen putch() hade jag en växel som jag ställde, den växel avgjorde om utdata gick till LCD, UART eller annat.
- ChristianS
- Inlägg: 229
- Blev medlem: 7 januari 2009, 11:13:58
- Ort: Limhamn
Re: H: putchar problem i CodeComposer för MSP430
Frågade en kollega idag som programmerat embedded i många år jag citerar "Om du inte nödvändigtvis behöver printf's olika funktioner så undvik det och skriv egna rutiner i stället". Så det blir väl tillbaka till min gamla kod, får helt enkelt städa upp den på npgot annat sätt.