CodeVision AVR в вопросах и ответах
Re: CodeVision AVR в вопросах и ответах
Народ помогите ПЛЗ разрулить такой гемор на CV.!!!!!!\
Надо с начало перемножить два unsigned long int получится unsigned long long int,
а потом это разделить на unsigned long int получится unsigned long int.
Сижу на CV 1.25.9, а он не понимает long long int. Более позднейшее версии отлечины коряво, со старыми проблемами.
Буду счастлив если кто поделится желательно на С библиотечкой, али нормально отшпили-вилиным СV посвежее/
Можно на мыло petrovav74@mail.ru. Заранее при много благодарен.
Надо с начало перемножить два unsigned long int получится unsigned long long int,
а потом это разделить на unsigned long int получится unsigned long int.
Сижу на CV 1.25.9, а он не понимает long long int. Более позднейшее версии отлечины коряво, со старыми проблемами.
Буду счастлив если кто поделится желательно на С библиотечкой, али нормально отшпили-вилиным СV посвежее/
Можно на мыло petrovav74@mail.ru. Заранее при много благодарен.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
а в double вычислить а потом в unsigned long преобоазовать - не покатит?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Fasterpast
- Мучитель микросхем
- Сообщения: 493
- Зарегистрирован: Ср фев 14, 2007 12:07:58
- Откуда: Москва
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
У меня 2.05.0 нормально работает.
Но long long он всё равно не поддерживает.
Но long long он всё равно не поддерживает.
Re: CodeVision AVR в вопросах и ответах
доброго всем времени суток
возникла проблема пунктуации:
надо написать обработку прерываний по совпадению таймера с каналом А
ясно что вот так :
nterrupt [ ] void adc_isr(void)
{
}
в квадратных скобках должно быть написано что это за прерывание , вопрос в том как его правильно обозвать (или алгоритм как это сделать , в даташите написано TIMER0 COMPA при поставлении в скобки выдает ошибку)
и ещё люди нет ни у кого полной таблици наименования прерываний для CodeVision AVR
заранее спасибо
возникла проблема пунктуации:
надо написать обработку прерываний по совпадению таймера с каналом А
ясно что вот так :
nterrupt [ ] void adc_isr(void)
{
}
в квадратных скобках должно быть написано что это за прерывание , вопрос в том как его правильно обозвать (или алгоритм как это сделать , в даташите написано TIMER0 COMPA при поставлении в скобки выдает ошибку)
и ещё люди нет ни у кого полной таблици наименования прерываний для CodeVision AVR
заранее спасибо
лень и ненависть двигатель прогресса а финансовые потоки тормоз
- AI_Disable
- Сверлит текстолит когтями
- Сообщения: 1116
- Зарегистрирован: Чт окт 15, 2009 14:16:18
- Откуда: Екб
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
ARM, зайдите в папку cvavr\inc\ и откройте хидер нужного вам контроллера. Там описаны дефйны всех векторов прерываний для данного МК.
PS Или же, в скобках, можете просто указывать номер прерывания, из таблицы в даташите.
PS Или же, в скобках, можете просто указывать номер прерывания, из таблицы в даташите.
- ChipKiller
- Сверлит текстолит когтями
- Сообщения: 1163
- Зарегистрирован: Ср янв 05, 2011 16:25:15
Re: CodeVision AVR в вопросах и ответах
... не совсем так ... у CV AVR есть особенность с нумерацией векторов (так RESET открывает счет с номера 1, в даташите отсчет идет с 0 )AI_Disable писал(а):PS Или же, в скобках, можете просто указывать номер прерывания, из таблицы в даташите.
Re: CodeVision AVR в вопросах и ответах
спасибо огромное
лень и ненависть двигатель прогресса а финансовые потоки тормоз
Re: CodeVision AVR в вопросах и ответах
Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного.
Re: CodeVision AVR в вопросах и ответах
Полагаю что нужно так:
После проверки состояния порта, применяйте вложенный отдельный цикл, типа:
if (PORTB.3==0)
{
while(PORTB.3==0)
{//Далее, все как у вас
if (c<=254) {
c++;
После проверки состояния порта, применяйте вложенный отдельный цикл, типа:
if (PORTB.3==0)
{
while(PORTB.3==0)
{//Далее, все как у вас
if (c<=254) {
c++;
Re: CodeVision AVR в вопросах и ответах
DataLife
На PORTB.3 есть подтяжка внешним резистором? Т. е. как меняется состояние входа. Кнопкой?
На PORTB.3 есть подтяжка внешним резистором? Т. е. как меняется состояние входа. Кнопкой?
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
2DataLife: этим
вы опрашиваете состояние самого порта, того, что там записано. В вашем случае надо
Код: Выделить всё
if (PORTB.3==0) {вы опрашиваете состояние самого порта, того, что там записано. В вашем случае надо
Код: Выделить всё
if (PINB.3==0) {Docendo discimus
Re: CodeVision AVR в вопросах и ответах
Еще раз намекну, что нужно применять вложенный цикл while после провки состояния PIN-a.
Причем в нем проводить повторную проверку на состояние пина. Для того, чтобы на случай отрицания можно было выйти из закольцованного цикла while.
Иначе, войти то войдем, а выйти из него не сможем когда понадобится.
Если не прав то поправте пожалуйста, так как я тоже еще начинающий в этом деле
Причем в нем проводить повторную проверку на состояние пина. Для того, чтобы на случай отрицания можно было выйти из закольцованного цикла while.
Иначе, войти то войдем, а выйти из него не сможем когда понадобится.
Если не прав то поправте пожалуйста, так как я тоже еще начинающий в этом деле
Re: CodeVision AVR в вопросах и ответах
Здравствуйте. Подскажите пожалуйста как правильно переделать строчку для CodeVisionAvr с WinAvr?
column_ptr[i] = pgm_read_byte(&(S_box[ column_ptr[i] ]));
flash const byte S_box[256] и column_ptr[i] тоже byte.
column_ptr[i] = pgm_read_byte(&(S_box[ column_ptr[i] ]));
flash const byte S_box[256] и column_ptr[i] тоже byte.
Re: CodeVision AVR в вопросах и ответах
Спасибо все откликнувшимся.
Попробовал так, как советовал pyzh_man
Эффект как и раньше - светодиод загорается плавно сразу после включения питания.
Пробовал до включения PINB.3 подкидывать на плюс - всё равно.
Подтягивающего резистора нет. Минус на пинБ.3 будет подаваться от концевика авто (двери). Хочу сделать плавное зажигание подсветки в ноги. Тоесть после того, как дверь открывается (концевик замыкается на массу) плавно зажигается светодиод. Как вариант - брать питание для МК от концевика, но как-то ... не хочу.
Помогите с проблемой. По сравнению с тут задаваемыми - у мня просто детсткий вопрос...
Попробовал так, как советовал pyzh_man
Код: Выделить всё
while (PINB.3==0) {
if (c<=254) {
c++;
}
else {
c=255;
};
delay_ms(10);
PWM_set(c);
read_adc();
};Эффект как и раньше - светодиод загорается плавно сразу после включения питания.
Пробовал до включения PINB.3 подкидывать на плюс - всё равно.
Подтягивающего резистора нет. Минус на пинБ.3 будет подаваться от концевика авто (двери). Хочу сделать плавное зажигание подсветки в ноги. Тоесть после того, как дверь открывается (концевик замыкается на массу) плавно зажигается светодиод. Как вариант - брать питание для МК от концевика, но как-то ... не хочу.
Помогите с проблемой. По сравнению с тут задаваемыми - у мня просто детсткий вопрос...
Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного.
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Весь текст выложите. И PORTB.3 обязательно притяните к питанию, хотя бы внутренними.
Docendo discimus
Re: CodeVision AVR в вопросах и ответах
Добавил файл к посту.
Пробовал перед началом программы писать и PORTB.3=1 и PINB.3=1 - всё равно ШИМ включается сразу.
Думаю, что что--то не то с портами входа-выхода...
Пробовал перед началом программы писать и PORTB.3=1 и PINB.3=1 - всё равно ШИМ включается сразу.
Думаю, что что--то не то с портами входа-выхода...
- Вложения
-
- 1.c
- Прога на Си
- (2.39 КБ) 502 скачивания
Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного.
Re: CodeVision AVR в вопросах и ответах
DataLife
У вас какая то "хитрая" забава с записью в PINB.3. На кой такое? Ставите PORTB.3 входом с внутренней подтяжкой. Подключаете один вывод кнопки к PORTB.3, второй к GND. Желательно еще последовательно в эту цепь резистор Ом на 500. Все. Кнопку нажали, в PINB.3 появится лог.ноль и поехали. Пока кнопка не нажата там же лог.1.
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Docendo discimus
Re: CodeVision AVR в вопросах и ответах
Тыкните меня носом в то место, где я не так делаю?
PINB.3=1; - до начала программы, что бы дальнейший цикл не начался раньше времени, подаю на пинБ.3 лог_1.
PORTB=0x00; - все ноги на "выходе", вроде бы как...
Расталкуйте, что тут имеется в виду под подтяжкой? Я что-то запутался.
Голова кругом... не моё это программирование...
SOS!
PINB.3=1; - до начала программы, что бы дальнейший цикл не начался раньше времени, подаю на пинБ.3 лог_1.
PORTB=0x00; - все ноги на "выходе", вроде бы как...
Расталкуйте, что тут имеется в виду под подтяжкой? Я что-то запутался.
Голова кругом... не моё это программирование...
SOS!
Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного.
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
DataLife писал(а):не моё это программирование
Дружище! Может вам не на мк собрать, а на таймере? Зачем мучаться? Спросите у знатоков 555.
Docendo discimus