Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
02.02.2009, 16:55
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Сообщение от Halex07
|
Вам бы нахаляву да еще и совсем крутой компилятор. Так не бывает. kison слегка "призагнул" насчет быстроты - все-таки самый компактный код у IAR.
|
Не призагнул. ИАР и GCC на разном коде дают немного разный результат. Где то ИАР впереди, где то GCC. Могу показать пример, где ИАР отстает раза в два. И наоборот тоже. Примерно равнозначные компиляторы. Но GCC бесплатен... И это очень жирный плюс. Ну и как я писал выше - у GCC отличный инлайновый ассемблер. ИАР тихо завидует в сторонке...
Сообщение от Halex07
|
А насчет неудобства Programmers Notepad он вообще скромно умолчал.
|
А какое отношение он имеет к GCC? Только то, что входит в сборку WinAvr и все. Есть другие сборки, там его нет. И разве обязательно пользоваться именно им? Связка Студии и GCC дают наиболее (ИМХО) удобную среду для программирования на С и отладки в реальном железе. Причем связка эта прозрачна - не надо переключаться, что то куда то грузить. Удобно.
|
|
|
|
02.02.2009, 17:16
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
Рекомендую использовать CVAVR 1.25.9 - всего 2 Мб - работает прекрасно.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
02.02.2009, 17:50
|
|
Прописка
Регистрация: 24.07.2008
Сообщений: 151
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
В файле кусок кода. В принципе сейчас все нормально, но целый месяц убил на поиски ошибок в обнимку с осциллографом, так ни чего и не нашел до сих пор не понял в чем загвостка была. Вчера снес AutoCAD поставил WinAVR на этом мои манипуляции с компом закончились запустил КодеАВР откомпилил прошил все заработало. Вот блин при чем тут АвтоКАД и т.п. В файле переменные Т0, Т1 мин., макс. задаются числами.
Прикрепленный файл: 3453606.rar
|
|
|
|
02.02.2009, 19:14
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
Ну CVAVR то не виноват ? Дак и пользуйтесь им на здоровье !
да PROTEUS поставьте и совсем красиво будет.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
02.02.2009, 21:44
|
|
Супер-модератор
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,509 раз(а) в 956 сообщении(ях)
|
Сообщение от avr123-nm-ru
|
Ну CVAVR то не виноват ? Дак и пользуйтесь им на здоровье !
|
Добавлю и библиотеки открытые.
Стоило ли месяц "дружить организмами с осциллоскопом".
Смотрите как просто:
Это Ваше:
Код:
|
#define TCNT1 (*(volatile unsigned int *)0x84) // Пока мне не посаветовали вставить эту строку ничего не работало |
Открываем можно и в самом CAVR, а можно в любом редакторе текста, хоть в блокноте файл:
С:CVAVRincMEGA88.H (ето то, что Вы включили диррективой #include ‹mega88.h›) и смотрим:
Код:
|
#define TCNT1L (*(unsigned char *) 0x84)
#define TCNT1H (*(unsigned char *) 0x85) |
т.е. для таймера 1 компилятору обозначено только это, вот оно то и будет работать по умолчанию.
Проделываем тот же финт с мегой 8, а там:
Код:
|
#pragma used+
. . .
sfrb TCNT1L=0x2c;
sfrb TCNT1H=0x2d;
sfrw TCNT1=0x2c; // 16 bit access
. . .
#pragma used- |
Т.е. TCNT1 уже назначен и соответствует TCNT1L - младшему байту того же счетчика. а в примечании // для таких как мы сказано что для 16-битного подключения. Что вы и проделали (см. свою строку)
Попробуйте такое найти в WinAVR - забодаетесь. А тут в пять сек.
Как в рекламе: "Москитол. Потому и не кусают."
Да и вообще у Вас странное применение компаратора с таймером. Используйте режим CAPTURE (захват) по прерыванию от компаратора - все получится намного проще.(Апноут130 AVR)
|
|
|
|
02.02.2009, 23:43
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Сообщение от Halex07
|
Попробуйте такое найти в WinAVR - забодаетесь. А тут в пять сек.
|
Да, там таких извращений нет
Код:
|
#include ‹io.h›
int main(void)
{
TCNT1 = 0xFEFE;
// и пофиг какой контроллер
// это будет работать на любом, где есть таймер 1
} |
|
|
|
|
03.02.2009, 11:28
|
|
Прописка
Регистрация: 24.07.2008
Сообщений: 151
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
А почему в данном случае не прокатывает сброс таймера
TCNT1=0; сбрасывается только
TCNT1L=0;
TCNT1H=0;
и еще, уважаемые, с чем связано что на меге8
DDRD.2=1;
PORTD.2=1;
свето диод горит. То же самое по отношению к Меге88 светодиод не горит пока вместо DDRD.2=1; не поставишь DDRD=1;
|
|
|
|
03.02.2009, 12:59
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Сообщение от FedorChek
|
А почему в данном случае не прокатывает сброс таймера
TCNT1=0; сбрасывается только
TCNT1L=0;
TCNT1H=0;
|
Вы бы результат компиляции привели. Так только гадать останется.
Сообщение от FedorChek
|
и еще, уважаемые, с чем связано что на меге8
DDRD.2=1;
PORTD.2=1;
свето диод горит. То же самое по отношению к Меге88 светодиод не горит пока вместо DDRD.2=1; не поставишь DDRD=1;
|
Может с тем, что светодиод подключен не к PD2, а к PD0?
|
|
|
|
03.02.2009, 13:06
|
|
Прописка
Регистрация: 24.07.2008
Сообщений: 151
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Не совсем понял какой результат компиляции должен я привести. Функция использующая таймер1 приведена в прикрепленном файле выше.
Что касается
DDRD.2=1;
PORTD.2=1;
тут я явно чтото не понимаю мы строкой DDRD.2=1; подключаем подтягивающий резистор, а строкой PORTD.2=1; подаем на ногу 2 напряжение или как...
|
|
|
|
03.02.2009, 13:06
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Сообщение от Halex07
|
Добавлю и библиотеки открытые.
|
Странно. Всегда были закрытые. Что то изменилось? Можете привести часть библиотеки I2C? Пару функций из нее - i2c_start, i2c_read.
И из библиотеки OneWire - w1_search например.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 19:46.
|
|