| Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
IAR AVR
14.09.2009, 05:42
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
|
Re: IAR AVR
Сообщение от alberio
|
|
За день работы получил море удовольствия по сравнению с винавром - глядя на скомпиленый код.
|
Сообщение от alberio
|
|
не работает
|
Лежу под столом 
Что не работает то? Исходник в студию. У меня ИАР не стоит, так что по памяти приходится напрягаться, а я с него на GCC перешел уже года 4 назад. И возвращаться совсем не тянет.
|
|
|
|
14.09.2009, 09:08
|
|
|
Гражданин KAZUS.RUN
Регистрация: 08.07.2006
Сообщений: 582
Сказал спасибо: 76
Сказали Спасибо 90 раз(а) в 66 сообщении(ях)
|
Re: IAR AVR
Не знаю, что заставило вас лечь под стол. Видимо на то есть веские причины.
-------------
int main( void )
{
unsigned int uval=1234;
unsigned char string[6];
Sys_Init();
LCD_Init();
sprintf(&string[0],"%u",uval);
LCD_putstring(string);
for(;  {}
}
--------------
__________________
Sex, Druggs, Rock&Roll
|
|
|
|
14.09.2009, 09:42
|
|
|
Гражданин KAZUS.RUN
Регистрация: 05.04.2009
Сообщений: 973
Сказал спасибо: 35
Сказали Спасибо 154 раз(а) в 133 сообщении(ях)
|
Re: IAR AVR
Напишите свой itoa
делал по тупому:
разбить 1234 на четыре цифры 1 2 3 4 (можно делением)
а затем к цифре просто добавить 0x30 (0x31 = ASCII '1')
|
|
|
|
14.09.2009, 09:42
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
|
Re: IAR AVR
Сообщение от alberio
|
|
Видимо на то есть веские причины.
|
Да, весьма.
Но отделим мух от котлет.
Попробуйте вынести массив из main - я не знаю что там за LCD_putstring, но подозреваю что параметром должна быть нуль-терминальная строка. В случае с локальным массивом этого не произойдет, там будет мусор.
Ну или объявляйте сразу с инициализацией:
unsigned char string[] = {0,0,0,0,0,0};
Сообщения какие нибудь компилятор выдает? Вообще хекс собирается? В отладчике (Студии) не пробовали по шагам пройтись?
Я смеху ради попробовал Ваш исходник.
|
Код:
|
#include ‹avr/io.h›
#include ‹inttypes.h›
#include ‹stdio.h›
char buf[6];
uint16_t var = 1234;
int main(void)
{
sprintf(&buf[0],"%u",var);
while(1)
{
asm volatile("nop");
}
} |
Проверялось естественно в GCC под студией, ну нет у меня ИАР.
Ну и без LCD разумеется. Смотрите картинку.
|
|
|
|
14.09.2009, 09:54
|
|
|
Гражданин KAZUS.RUN
Регистрация: 08.07.2006
Сообщений: 582
Сказал спасибо: 76
Сказали Спасибо 90 раз(а) в 66 сообщении(ях)
|
Re: IAR AVR
Сообщение от oleg110592
|
Напишите свой itoa
делал по тупому:
разбить 1234 на четыре цифры 1 2 3 4 (можно делением)
а затем к цифре просто добавить 0x30 (0x31 = ASCII '1')
|
Я так и сделал
Ганял в студии - выполняется n-ое кол-во инструкций, а потом прыгает кудато очень глубоко, и студия комментирует - "invalid opcode".
Ресет. И все. Так что вылезайте из-под стола, пожалуйста
__________________
Sex, Druggs, Rock&Roll
|
|
|
|
14.09.2009, 10:07
|
|
|
Гражданин KAZUS.RUN
Регистрация: 13.06.2005
Адрес: РК г.Павлодар
Сообщений: 862
Сказал спасибо: 98
Сказали Спасибо 216 раз(а) в 139 сообщении(ях)
|
Re: IAR AVR
Сообщение от oleg110592
|
Напишите свой itoa
делал по тупому:
разбить 1234 на четыре цифры 1 2 3 4 (можно делением)
а затем к цифре просто добавить 0x30 (0x31 = ASCII '1')
|
Присоединяюсь делаю также.
А то эти библиотеки жрут места не мерянно!
__________________
Не ошибается лишь тот, кто ни чего не делает!
|
|
|
|
14.09.2009, 10:41
|
|
|
Временная регистрация
Регистрация: 20.02.2005
Сообщений: 90
Сказал спасибо: 10
Сказали Спасибо 36 раз(а) в 11 сообщении(ях)
|
Re: IAR AVR
Сообщение от alberio
|
|
Хм, а с библиотеками лажа. Ну, к примеру, не могу никак найти функции преобразования числа в строку
|
такой функции в яре НЕТ - она не есть стандаот а лишь расширение в разных компиляторах 0 например в борланд Си...
написать сию функцию состоящую из пару строк не составит труда - что я когда-то и делал..
|
|
|
|
14.09.2009, 10:45
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
|
Re: IAR AVR
Сообщение от alberio
|
|
И все. Так что вылезайте из-под стола, пожалуйста
|
Если это мне, то я вылезу 
Но операцию "по телеграфу" выполнить сложно. Приложите скомпилированный минимальный проект с использованием sprintf. Так чтобы elf/cof с отладочной информацией уже был собран. Поглядим  Но в принципе можете забить и написать свой вариант. Короче/быстрее/универсальнее чем стандартный из avr-libc конечно не получится, но будет явно лучше, чем очень универсальный sprintf
|
|
|
|
14.09.2009, 16:25
|
|
|
Гражданин KAZUS.RUN
Регистрация: 08.07.2006
Сообщений: 582
Сказал спасибо: 76
Сказали Спасибо 90 раз(а) в 66 сообщении(ях)
|
Re: IAR AVR
Вот, попробуйте. Расширение *.d90 протеусом и студией понимаеццо.
__________________
Sex, Druggs, Rock&Roll
|
|
|
|
14.09.2009, 18:33
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
|
Re: IAR AVR
Этого мало - студия хочет весь проект. Соберите пример выше в три строки - массив, sprintf и что нибудь внутри while(1) - чтобы брейкпоинт поставить.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 02:14.
|
|