Все, окончательно запутался. Привык дебаг на сом-порт кидать. В CCS все просто - #use rs232 и printf
Вот теперь пытаюсь тоже самое под xc8... Софтовый UART там, как я понял, только для 18 (не видел 18 без аппаратного. Только если ноги другие использовать?). Ну да мне скорость небольшая, пару слов там и циферок скинуть. Сделал свои процедурки. Работают. А вот как определить STDOUT - не понимаю.
Цитата:
|
:0: error: undefined symbol:
_putch(dist/XC8_PIC12F675/production\test02.X.production.obj)
(90 exit status = 1
make[2]: *** [dist/XC8_PIC12F675/production/test02.X.production.hex] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2
make[2]: Leaving directory `C:/Work/xc8/test02.X'
make[1]: Leaving directory `C:/Work/xc8/test02.X'
BUILD FAILED (exit value 2, total time: 2s)
|
в хелпе написано
Цитата:
|
Simple mode uses four helper functions for I/O. These are: _mon_puts(), _mon_write(), _mon_putc(), and _mon_getc(). Default operation for these functions are defined in STDIO Functions. The default operation may be over-ridden by defining custom versions of these functions.
|
Я ему так:
Цитата:
|
#define _mon_putc(a) txuart(a)
#define _mon_getc() rxuart()
|
и так
Цитата:
|
#define _mon_putc(a) txuart(a)
#define _mon_getc() rxuart()
#define mon_putc(a) txuart(a)
#define mon_getc() rxuart()
#define _putc(a) txuart(a)
#define _getc() rxuart()
#define _putch(a) txuart(a)
#define _getche() rxuart()
#define putch(a) txuart(a)
#define getche() rxuart()
|
В MCC18 вроде прокатывало. Правда, я там аппаратный UART пользовал.
Можно, конечно, на CCS все сделать (собственно, оно там и сделано было), но я в ем не понимаю, как несколько С-файлов в проект подключить... А вы тут больно ногами пинаете тех, кто пишет #include "xxx.c"
Да и с extern он как-то непонятно работает...