Технический форум по робототехнике.
avr123.nm.ru » 18 фев 2009, 14:02
Сергей писал(а):Только пользы от этого не будет, потому как человек не сможет отлаживать программы и смотреть лог в консоли. Для этого ему понадобица либо глючный Протеус либо еще какойнить симулятор.
А в самом МК нельзя отлаживать чтоль ?
Сергей » 18 фев 2009, 14:07
Да пожалуйста, вот только начинающему нужно будет перезаливать программу постоянно и очень часто, а перезаливка требует времени, в то время как на компе скомпилил и запустил. Особенно простые программы на компе компиляца за несколько секунд.
rock » 18 фев 2009, 17:35
Извините, что долго не отвечал был в отъезде. Тем кто советует мне читать книги я бы посоветовал вообще не чего не писать. Потому что, я и сам знаю что нужно читать книги и поверти я их читаю, но не всегда все сразу бывает понятно. Для этого я и задал конкретный вопрос в надежде получить конкретный ответ. И вопрос был замете не о книгах.
void ftoa(float n, unsigned char decimals, char *str)
avr123.nm.ru не могли бы вы подробно рассказать как правильно использовать эту функцию, если можно на примере. Спасибо.
boez » 18 фев 2009, 18:19
А в avr-libc (которая для программирования аврок на gcc, к примеру в составе пакета WinAVR идет) вообще функции ftoa нету. atof есть. А вместо ftoa/itoa/ltoa говорят юзайте sprintf
blindman » 18 фев 2009, 18:36
Насчет itoa/ltoa - неправда. А для float point есть dtostrf/dtostre.
- Код: Выделить всё • Развернуть
andrey@underground:/usr/avr/lib/avr4$ avr-nm libc.a | grep 'utoa\|ltoa\|itoa\|dtostrf\|dtostre'
itoa.o:
00000000 T itoa
ltoa.o:
00000000 T ltoa
ultoa.o:
00000000 T ultoa
utoa.o:
00000000 T utoa
dtostre.o:
00000000 T dtostre
dtostrf.o:
00000000 T dtostrf
andrey@underground:/usr/avr/lib/avr4$
rock » 18 фев 2009, 18:43
Спасибо, я обязательно поюзаю sprintf, но я хотел бы разобраться и с ftoa, чтоб знать в какой ситуации, что лучше использовать.
realsystem » 18 фев 2009, 18:44
Никакой с..ка разницы (с)
Что комп что МК
blindman » 18 фев 2009, 18:48
realsystem писал(а):Никакой с..ка разницы (с)
Между чем?
boez » 18 фев 2009, 18:55
blindman писал(а):Насчет itoa/ltoa - неправда. А для float point есть dtostrf/dtostre.
Точно. Вот так и верь мануалу
Причем в мануале эти функции есть! Токо в оглавлении нету, а искать некогда было
realsystem » 18 фев 2009, 19:55
blindman писал(а):Между чем?
В контексте
Сергей писал(а):человек не сможет отлаживать программы и смотреть лог в консоли
Отлаживать можно и при программировании компа, и при программировании МК.
rock » 19 фев 2009, 17:17
Я вижу помощи ждать неоткуда?
Сергей » 19 фев 2009, 17:22
Можно перенаправить вывод на дисплей и printf будет слать данные в дисплей. Как это сделать написано, если не изменяет память,в stdio.h или stdlib.h, там даж пример есть
Vooon » 19 фев 2009, 18:18
Для этого нужно стоздать файловое устройство (поток)
И присвоить его адрес стандартным потокам.
Для lcd будет что-то вроде:
- Код: Выделить всё • Развернуть
#include <stdio.h>
int lcd_putchar(char c, FILE *stream);
{
// lcd_putchar
}
FILE lcd_fdev = FDEV_SETUP_STREAM(lcd_putchar, NULL, _FDEV_SETUP_WRITE);
int main()
{
stdout = &lcd_fdev;
printf("Output to lcd %d", 123);
return 0;
}