|
Интересный глюк в CodeVisionAVR |
|
|
|
Apr 17 2008, 09:02
|

Частый гость
 
Группа: Свой
Сообщений: 120
Регистрация: 19-02-08
Пользователь №: 35 166

|
Обнаружил интересный глюк в CodeVision, целый день вчера просидел - думал во мне дело, оказалось, что нет. Если мы делаем сдвиг и результирующее число выходит из размера 1 байта, то, почему-то, компилятор не преобразует его к int (хотя обязан по стандарту). То есть вот такой код работает непрявильно: Код unisigned char s = 243; //... unsigned int d = (unsigned int)(s << 4); // d != 3888 а надо так делать, что глупо... Код unisigned char s = 243; //... unsigned int d = (unsigned int)(((unsigned int)s) << 4); // d = 3888 Интересно, зачем это надо или это просто баг??..
--------------------
Все будет хорошо! Я проверял!
|
|
|
|
|
 |
Ответов
|
Dec 4 2008, 20:56
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Стоимость LCD от 3.5$ за 2х16 до 11 за 4х20. Думаю экзотика в виде SPI LCD будет на 1$ дороже (За счёт экзотичности). Таким образом применив ATMega8, к примеру, и зашив там свою кодовую таблицу (Или несколько) вы можете получить за теже деньги LCD модуль с любым интерфейсом. SPI,I2C,RS232. Если туда добавить клаву, звук, светодиоды, то вообще такой законченный переферийный модуль будет себя оправдывать. Остаётся вопрос конструкции.  По поводу ASM вставок. Как то не совсем себе представляю ASM текст прямо по тексту Си программы. Если это работа с оборудованием, то как правило IAR её делает не хуже, а если просто прога, то смутно себе представляю. С другой стороны вызов законченной процедуры вполне уместен и не портит картину. Ну или там прерывание полностью на ASMе. Это я понимаю. Это как раз делается легко на IAR и просто. Какие сложности? Просто берёшь и пишешь отдельным файлом все свои процедуры ASM. Никакого гимора нет. Ну и включаешь в проект общий, да и всё! Никаких дополнительных танцев с бубном не надо.
|
|
|
|
|
Dec 4 2008, 21:25
|

Частый гость
 
Группа: Свой
Сообщений: 176
Регистрация: 2-04-08
Из: Днепропетровск
Пользователь №: 36 406

|
Цитата(SasaVitebsk @ Dec 4 2008, 22:56)  По поводу ASM вставок. Как то не совсем себе представляю ASM текст прямо по тексту Си программы. Если это работа с оборудованием, то как правило IAR её делает не хуже, а если просто прога, то смутно себе представляю. С другой стороны вызов законченной процедуры вполне уместен и не портит картину. Ну или там прерывание полностью на ASMе. Это я понимаю. Это как раз делается легко на IAR и просто.
Какие сложности? Просто берёшь и пишешь отдельным файлом все свои процедуры ASM. Никакого гимора нет. Ну и включаешь в проект общий, да и всё! Никаких дополнительных танцев с бубном не надо. Если действительно "прямо по тексту" я тоже смысла не вижу. А обработчики прерываний пишу очень часто целиком на асме. В CodeVision ставишь себе pragma savereg- и - вперед. В IAR буду разбираться, пробовать. Настал момент смены компилятора. С переходом на CodeVision2 старые проекты без переработок не компилируются.
--------------------
Ребята, как же это вы без гравицапы пепелац выкатываете из гаража? Это непорядок. ©
|
|
|
|
Сообщений в этой теме
DMD Интересный глюк в CodeVisionAVR Apr 17 2008, 09:02 Сергей Борщ Да, выходит, это еще одно несоответствие стандарту... Apr 17 2008, 09:17 defunct Цитата(Сергей Борщ @ Apr 17 2008, 11:17) ... Dec 3 2008, 00:15  Сергей Борщ Цитата(defunct @ Dec 3 2008, 02:15) Можно... Dec 3 2008, 01:58  zhevak Цитатаdefunct[/b]' date='Dec 3 2008, 05:15... Dec 3 2008, 21:26   defunct zhevak
за подробнейшие ответы. Dec 3 2008, 22:47   LordVader Цитата(zhevak @ Dec 4 2008, 01:26) Если L... Dec 4 2008, 10:26    zhevak Цитата(LordVader @ Dec 4 2008, 15:26) Сущ... Dec 4 2008, 10:47     LordVader Цитата(zhevak @ Dec 4 2008, 13:47) Я вам ... Dec 4 2008, 18:22      zhevak Цитата(LordVader @ Dec 4 2008, 23:22) Ну ... Dec 4 2008, 19:15 prottoss Цитата(DMD @ Apr 17 2008, 16:02) Обнаружи... Apr 17 2008, 10:31 Сергей Борщ Цитата(prottoss @ Apr 17 2008, 13:31) А п... Apr 17 2008, 11:20  prottoss Цитата(Сергей Борщ @ Apr 17 2008, 18:20) ... Apr 18 2008, 00:42  Andrew O. Shadoura Цитата(Сергей Борщ @ Apr 17 2008, 14:20) ... Apr 18 2008, 02:01 WHALE Цитата(DMD @ Apr 17 2008, 13:02) Обнаружи... Apr 17 2008, 12:33 DMD Ворнинги не генерились, что и странно. А насчет то... Apr 18 2008, 09:41 ReAl Цитата(DMD @ Apr 17 2008, 12:02) Обнаружи... Apr 18 2008, 14:50 zhevak Выбрось каку
Прошу не пинать -- прошелся поиском... Dec 2 2008, 15:52  Nick_Shl Цитата(zhevak @ Dec 2 2008, 17:52) Вопрос... Dec 3 2008, 06:15 delamoure Цитата(ReAl @ Apr 18 2008, 16:50) Уже обс... Dec 3 2008, 11:48  Сергей Борщ Цитата(delamoure @ Dec 3 2008, 13:48) Но ... Dec 3 2008, 13:35   SasaVitebsk Цитата(Сергей Борщ @ Dec 3 2008, 17:35) Т... Dec 3 2008, 23:53    Qwertty Цитата(SasaVitebsk @ Dec 4 2008, 02:53) В... Dec 4 2008, 04:57    Сергей Борщ Цитата(SasaVitebsk @ Dec 4 2008, 01:53) А... Dec 4 2008, 09:36 _Pasha Интересно, какие грабельки еще подкинет 16-битная ... Dec 3 2008, 14:22 Serj78 Цитата(_Pasha @ Dec 3 2008, 17:22) Интере... Dec 4 2008, 08:20 delamoure Впрочем, IAR для меня не новость
"Многостроч... Dec 4 2008, 00:52 ARV а как можно преобразовать строки для вывода на LCD... Dec 4 2008, 09:51 Сергей Борщ Цитата(ARV @ Dec 4 2008, 11:51) понимаю, ... Dec 4 2008, 10:16  ARV Цитата(Сергей Борщ @ Dec 4 2008, 13:16) Н... Dec 4 2008, 10:19   ReAl Цитата(ARV @ Dec 4 2008, 12:19) это очеви... Dec 5 2008, 11:06 zhevak Цитата(ARV @ Dec 4 2008, 14:51) а как мож... Dec 4 2008, 10:25 _Pasha Цитата(ARV @ Dec 4 2008, 13:51) а как мож... Dec 4 2008, 10:38  SasaVitebsk Цитата(delamoure @ Dec 5 2008, 01:25) В C... Dec 4 2008, 23:39 Сергей Борщ Цитата(SasaVitebsk @ Dec 4 2008, 22:56) П... Dec 5 2008, 02:41
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|