Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
20.03.2010, 17:53
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
|
Re: Как в CVAVR вывести 3х-значное число на порты?
Сообщение от kison
|
Вот блин - я ее среди комментариев не заметил ![Улыбка](images/smilies/icon_smile.gif)
Но пробовать собирать снова не буду - меньше 200 тактов все равно не получу.
|
Выложите для меня ПЛИЗ настроеный проект GCC ... пустой, допустим с main.c и main.h. Настроеный для компиляции... А сам я подключу в main.c свой файл и скомпилирую.
Я не создавал никогда для GCC. Не в курсе чего там и как настраивать...
|
|
|
|
20.03.2010, 18:17
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Как в CVAVR вывести 3х-значное число на порты?
Сообщение от picavr
|
Не в курсе чего там и как настраивать...
|
Там ничего не надо настаивать. Это не ИАР.
Единственное что нужно - установить частоту ( и то необязательно если нет программных задержек) и тип кристалла. Все делается прямо в студии. А - главное оптимизацию не забыть включить, наример Os
|
|
|
|
20.03.2010, 21:32
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,548
Сказал спасибо: 384
Сказали Спасибо 737 раз(а) в 417 сообщении(ях)
|
Re: Как в CVAVR вывести 3х-значное число на порты?
Код:
|
unsigned int Bin2BCD(unsigned int value, char *Res)
{
char *n = Res;
while (value›0)
{
*Res++ = value % 10;
value/=10;
}
return (unsigned int)(Res-n);
} |
Функция записывает в буфер десятичное число, начиная с младшего знака и возвращает количество преобразованных цифр.
ADS1.2 - 16 команд, 88 тактов/5 знаков (апп. умножение+сдвиги)
MPLAB C30 - 15 команд, 136 тактов/5 знаков (апп. деление)
З.Ы. Интересны результаты для других компиляторов
|
|
|
|
21.03.2010, 00:32
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
|
Re: Как в CVAVR вывести 3х-значное число на порты?
KEIL ARM @ LPC1768 - 16 команд, 99 тактов/5 знаков
MPLAB C32 - 16 команд, 68 тактов/5 знаков
Последний раз редактировалось st_1; 21.03.2010 в 00:50.
|
|
|
|
21.03.2010, 19:59
|
|
Прописка
Регистрация: 04.08.2006
Сообщений: 181
Сказал спасибо: 1
Сказали Спасибо 31 раз(а) в 31 сообщении(ях)
|
Re: Как в CVAVR вывести 3х-значное число на порты?
Сообщение от AJScorp
|
Функция записывает в буфер десятичное число, начиная с младшего знака и возвращает количество преобразованных цифр.
|
можно указать пример вызова функции с переменными, т.к. у меня в CodeVision при передачи в функцию числа 534 на входе value=2...
|
|
|
|
22.03.2010, 10:34
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,548
Сказал спасибо: 384
Сказали Спасибо 737 раз(а) в 417 сообщении(ях)
|
Re: Как в CVAVR вывести 3х-значное число на порты?
Сообщение от code-by
|
можно указать пример вызова функции с переменными
|
Например так:
Код:
|
char bf[10];
unsigned int DigCount;
unsigned int Bin2BCD(unsigned int value, char *Res)
{
char *n = Res;
while (value›0)
{
*Res++ = value % 10;
value/=10;
}
return (unsigned int)(Res-n);
}
int main()
{
DigCount = Bin2BCD(1234, bf);
} |
К сожалению в CVAVR проверить не могу.
Последний раз редактировалось AJScorp; 09.12.2010 в 22:31.
|
|
|
|
23.03.2010, 23:23
|
|
Прописка
Регистрация: 04.08.2006
Сообщений: 181
Сказал спасибо: 1
Сказали Спасибо 31 раз(а) в 31 сообщении(ях)
|
Re: Как в CVAVR вывести 3х-значное число на порты?
Спасибо, AJScorp
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:38.
|
|