CodeVision AVR в вопросах и ответах
Мои глюки.
C СVAVR.
1)
переменную более 4 символов принял за(похожую) функтцию и спросил а где () ?
2)
Гдето было прописано if(a=b){ля-ля }, так он просто приравнивал а к b и далее у меня был тупейший моразм(с этими переменными)!!! ***!
3) if (a>b>c) не работало, написал так if (a>b){if b>c{};};. Хотя конечно if((а>b)&&(b>c)) нормально работает.
4) Если я а=qwe[1]; то потом в qwe[1] ничего.
Приходится const char(допустим) qwe[]; , а уж потом с ним работать.
И вообще, кокда как. Не стого ни ссего меняется объём хек. файла...
По моему вопросу, просто не понятно какие у него завязки-развязки, что он работает с переменными(которые в обработчике прервываний) только тогда, когда их выводишь на экран...
Как это взаимосвясано!? Почему они сами в обработчике не работают, и обнуляются когда я посмотрел и выхожу из этой функции.
Переменные глобальные.
МК атмега128.
CV AVR 1.25.7 beta 5 standart.
???
C СVAVR.
1)
переменную более 4 символов принял за(похожую) функтцию и спросил а где () ?
2)
Гдето было прописано if(a=b){ля-ля }, так он просто приравнивал а к b и далее у меня был тупейший моразм(с этими переменными)!!! ***!
3) if (a>b>c) не работало, написал так if (a>b){if b>c{};};. Хотя конечно if((а>b)&&(b>c)) нормально работает.
4) Если я а=qwe[1]; то потом в qwe[1] ничего.
Приходится const char(допустим) qwe[]; , а уж потом с ним работать.
И вообще, кокда как. Не стого ни ссего меняется объём хек. файла...
По моему вопросу, просто не понятно какие у него завязки-развязки, что он работает с переменными(которые в обработчике прервываний) только тогда, когда их выводишь на экран...
Как это взаимосвясано!? Почему они сами в обработчике не работают, и обнуляются когда я посмотрел и выхожу из этой функции.
Переменные глобальные.
МК атмега128.
CV AVR 1.25.7 beta 5 standart.
???
- mr.Kirill
- Мучитель микросхем
- Сообщения: 438
- Зарегистрирован: Вт сен 25, 2007 19:40:26
- Откуда: Челябинск
MetEl писал(а):Мои глюки.
C СVAVR.
Скорее в основном ваши глюки, а не CVAVR
1)
переменную более 4 символов принял за(похожую) функтцию и спросил а где () ?
Где Вас учили называть переменные так же как и функции?
2)
Гдето было прописано if(a=b){ля-ля }, так он просто приравнивал а к b и далее у меня был тупейший моразм(с этими переменными)!!! ***!
По синтаксису С должно было быть написано if (a==b), а так разумеется он их приравнял, так что учите синтаксис
3) if (a>b>c) не работало, написал так if (a>b){if b>c{};};. Хотя конечно if((а>b)&&(b>c)) нормально работает.
Опять же - синтаксис! Нет универсального, каждый компилятор по своему такие моменты воспринимает или не воспринимает.
Но все таки с точки зрения программирования, читабельности и восприятия запись if((а>b)&&(b>c)) более правильная.
4) Если я а=qwe[1]; то потом в qwe[1] ничего.
Приходится const char(допустим) qwe[]; , а уж потом с ним работать.
Возможно имелось ввиду qwe[1]=a? А так как у Вас написано конечно ничего не будет в qwe[1], если до этого туда ничего не вносилось
И вообще, кокда как. Не стого ни ссего меняется объём хек. файла...
По моему вопросу, просто не понятно какие у него завязки-развязки, что он работает с переменными(которые в обработчике прервываний) только тогда, когда их выводишь на экран...
Как это взаимосвясано!? Почему они сами в обработчике не работают, и обнуляются когда я посмотрел и выхожу из этой функции.
Переменные глобальные.
МК атмега128.
CV AVR 1.25.7 beta 5 standart.
???
И вообще прежде чем грешить на CVAVR, как в общем и на любой другой софт - проверьте себя! Не думаю что Вы настолько крутые программеры, что пишете совершенно без ошибок и во всех бедах виновен софт.
Лично у меня CVAVR не разу не вызвал нареканий по работе, а работу с ним достаточно долго уже. И реализованные с его помощью проекты работаю "как часы".
- tych
- Э...
- Сообщения: 2792
- Зарегистрирован: Ср апр 04, 2007 08:39:14
- Откуда: Москва
- Контактная информация:
lexmulya писал(а): IAR выкидывает следующий код
for(i=0; i<1000; i++){};
так как он считает что этот код "не полезен"
Есть "прагмы" всякие - типа "но оптимизейшн" и в CVAVR
и есть модификатор volatile - стр 5 часть 2 "Си для МК" под кнопкой
Последний раз редактировалось tych Ср дек 19, 2007 18:55:53, всего редактировалось 1 раз.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
mr.Kirill писал(а):Скорее в основном ваши глюки, а не CVAVR
1)
Где Вас учили называть переменные так же как и функции?
2)
По синтаксису С должно было быть написано if (a==b), а так разумеется он их приравнял, так что учите синтаксис
3)
Возможно имелось ввиду qwe[1]=a? А так как у Вас написано конечно ничего не будет в qwe[1], если до этого туда ничего не вносилось!
И вообще прежде чем грешить на CVAVR, как в общем и на любой другой софт - проверьте себя! Не думаю что Вы настолько крутые программеры, что пишете совершенно без ошибок и во всех бедах виновен софт.
Лично у меня CVAVR не разу не вызвал нареканий по работе, а работу с ним достаточно долго уже. И реализованные с его помощью проекты работаю "как часы".
1. нигде.
2. Какого рожна он в ифе делает какието операции, ведь это написано в условии. А он выполняет операцию и сбивает мне переменныю! Вот в чём вопрос!
3. Ну как это не вносилось! Канешно заносилось!
4. Молчать тоже нельзя. Вот я и спрашиваю что сделать или на что обратить внимание. А не читать и учить мне это нахер не нада!
Может функции, поцедуры, прагмы всякие не так обозваны, ретурн какойнить не написал, ещё чегото...
- mr.Kirill
- Мучитель микросхем
- Сообщения: 438
- Зарегистрирован: Вт сен 25, 2007 19:40:26
- Откуда: Челябинск
MetEl писал(а):1. нигде.
2. Какого рожна он в ифе делает какието операции, ведь это написано в условии. А он выполняет операцию и сбивает мне переменныю! Вот в чём вопрос!
3. Ну как это не вносилось! Канешно заносилось!
4. Молчать тоже нельзя. Вот я и спрашиваю что сделать или на что обратить внимание. А не читать и учить мне это нахер не нада!
2. Это вопрос к создателям "языка С"
В if может сначала выполниться какое-то действие, а потом пройти проверка, и все это будет в зависимости от приоритета операций.
3. Просто так оно разумеется не могло пропасть, логично что, где-то что-то не так.
4. Если ты ни читать, ни учить ничего не собираешься тогда о чем вообще с тобой разговаривать?
Это уже к вопросу о невнимательности твоей.Может функции, поцедуры, прагмы всякие не так обозваны, ретурн какойнить не написал, ещё чегото...
В if может сначала выполниться какое-то действие...
Это здорова!
Это вопрос к создателям "языка С"
Да уж.. надо знать кого любить!
логично что, где-то что-то не так.
Пришлось выдумывать.
4. Если ты ни читать, ни учить ничего не собираешься тогда о чем вообще с тобой разговаривать? Цитата:
Может функции, поцедуры, прагмы всякие не так обозваны, ретурн какойнить не написал, ещё чегото...
Это уже к вопросу о невнимательности твоей.
Не надо со мной разговаривать. Вы советы давайте, а я посмотрю.
Невнимательность? Былобы что читать!
Может время не хватает обработчику...
обявил в обработчике свои переменные но тип static ( консервируется поле выхода из процедуры).
К примеру static int q;
Потом присваиваю её значение глобальной переменной и выхожу из обработчика.
Странно то! Что два прерывания и два таймера работали и всё нормально, а как решил добавить ещё переменных так началось вот это. Теперь добавил третий таймер и внём только статик. И вот так как в анегдоте... работает и ладно?!
Может чё почитать посоветуетте...
***!
К примеру static int q;
Потом присваиваю её значение глобальной переменной и выхожу из обработчика.
Странно то! Что два прерывания и два таймера работали и всё нормально, а как решил добавить ещё переменных так началось вот это. Теперь добавил третий таймер и внём только статик. И вот так как в анегдоте... работает и ладно?!
Может чё почитать посоветуетте...
***!
- tych
- Э...
- Сообщения: 2792
- Зарегистрирован: Ср апр 04, 2007 08:39:14
- Откуда: Москва
- Контактная информация:
MetEl писал(а):Может чё почитать посоветуете...
http://www.radiokot.ru/forum/viewtopic. ... 7893#77893
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
- tych
- Э...
- Сообщения: 2792
- Зарегистрирован: Ср апр 04, 2007 08:39:14
- Откуда: Москва
- Контактная информация:
А ниже нажимается.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Нажимается!
А я бы, вот так написал, тогда - "ссылка под кнопкой Д, см ниже"
Млин, 1024 раза уже говорили: ну вот на кой, скажите, полностью цитировать предыдущее сообщение, если вы на него отвечаете? Все исправил. В следующий раз просто удалять буду.
Aheir
P.S. Есть вопросы - прошу в личку
А я бы, вот так написал, тогда - "ссылка под кнопкой Д, см ниже"
Млин, 1024 раза уже говорили: ну вот на кой, скажите, полностью цитировать предыдущее сообщение, если вы на него отвечаете? Все исправил. В следующий раз просто удалять буду.
P.S. Есть вопросы - прошу в личку
- Вложения
-
- старый-чайник.jpg
- (30.84 КБ) 795 скачиваний
- Denis-d20
- Открыл глаза
- Сообщения: 52
- Зарегистрирован: Сб ноя 24, 2007 10:06:53
- Откуда: Украина,хмельницкий
- Контактная информация:
Да в принципе я все переделал и понял что кчему. Щас проблема отобразить температуру на ЖКИ дело в том, что толи дисплей толи контроллер не понимает float ,и когда значение температуры втаком виде то на дисплее какая-то жуть. Если же беру другой тип переменной все нормально но не отображает десятых.
- Denis-d20
- Открыл глаза
- Сообщения: 52
- Зарегистрирован: Сб ноя 24, 2007 10:06:53
- Откуда: Украина,хмельницкий
- Контактная информация:
Отбой сдесятыми уже разобрался решение оказалось проще не бывает:
float temp;
long temp2;
{
temp=ds18b20_temperature(&rom_codes[i][0]);
temp2=temp*10;
sprintf(lcd_buffer2,"t%u=%d.%i\xdfC",j++,(temp2-(temp2%10))/10,temp2%10);
lcd_clear();
lcd_puts(lcd_buffer2);
delay_ms(500);
Но нашел другую Ж... Было подключено 3 датчика, при отключении 2х из них контроллер виснет и вообще ничего не показывает если обратно все 3 сажаю все нормально Где могла собака порыться?
float temp;
long temp2;
{
temp=ds18b20_temperature(&rom_codes[i][0]);
temp2=temp*10;
sprintf(lcd_buffer2,"t%u=%d.%i\xdfC",j++,(temp2-(temp2%10))/10,temp2%10);
lcd_clear();
lcd_puts(lcd_buffer2);
delay_ms(500);
Но нашел другую Ж... Было подключено 3 датчика, при отключении 2х из них контроллер виснет и вообще ничего не показывает если обратно все 3 сажаю все нормально Где могла собака порыться?
