CodeVision AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
master_74
Родился
Сообщения: 19
Зарегистрирован: Вт апр 06, 2010 09:50:34

Re: CodeVision AVR в вопросах и ответах

Сообщение master_74 »

Народ помогите ПЛЗ разрулить такой гемор на 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. Заранее при много благодарен.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение ARV »

а в double вычислить а потом в unsigned long преобоазовать - не покатит?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Fasterpast
Мучитель микросхем
Сообщения: 493
Зарегистрирован: Ср фев 14, 2007 12:07:58
Откуда: Москва
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение Fasterpast »

У меня 2.05.0 нормально работает.
Но long long он всё равно не поддерживает.
Аватара пользователя
ARM
Встал на лапы
Сообщения: 84
Зарегистрирован: Пт май 20, 2011 05:35:56
Откуда: Воронеж

Re: CodeVision AVR в вопросах и ответах

Сообщение ARM »

доброго всем времени суток
возникла проблема пунктуации:
надо написать обработку прерываний по совпадению таймера с каналом А
ясно что вот так :
nterrupt [ ] void adc_isr(void)
{

}

в квадратных скобках должно быть написано что это за прерывание , вопрос в том как его правильно обозвать (или алгоритм как это сделать , в даташите написано TIMER0 COMPA при поставлении в скобки выдает ошибку)
и ещё люди нет ни у кого полной таблици наименования прерываний для CodeVision AVR

заранее спасибо
лень и ненависть двигатель прогресса а финансовые потоки тормоз
Аватара пользователя
AI_Disable
Сверлит текстолит когтями
Сообщения: 1116
Зарегистрирован: Чт окт 15, 2009 14:16:18
Откуда: Екб
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение AI_Disable »

ARM, зайдите в папку cvavr\inc\ и откройте хидер нужного вам контроллера. Там описаны дефйны всех векторов прерываний для данного МК.
PS Или же, в скобках, можете просто указывать номер прерывания, из таблицы в даташите.
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: CodeVision AVR в вопросах и ответах

Сообщение ChipKiller »

AI_Disable писал(а):PS Или же, в скобках, можете просто указывать номер прерывания, из таблицы в даташите.
... не совсем так ... у CV AVR есть особенность с нумерацией векторов (так RESET открывает счет с номера 1, в даташите отсчет идет с 0 )
Аватара пользователя
ARM
Встал на лапы
Сообщения: 84
Зарегистрирован: Пт май 20, 2011 05:35:56
Откуда: Воронеж

Re: CodeVision AVR в вопросах и ответах

Сообщение ARM »

спасибо огромное
лень и ненависть двигатель прогресса а финансовые потоки тормоз
Аватара пользователя
DataLife
Вымогатель припоя
Сообщения: 601
Зарегистрирован: Пт фев 13, 2009 20:58:13
Откуда: Донецк

Re: CodeVision AVR в вопросах и ответах

Сообщение DataLife »

Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного.
Аватара пользователя
rs39
Открыл глаза
Сообщения: 53
Зарегистрирован: Сб май 07, 2011 14:35:24
Откуда: Россия

Re: CodeVision AVR в вопросах и ответах

Сообщение rs39 »

Полагаю что нужно так:
После проверки состояния порта, применяйте вложенный отдельный цикл, типа:
if (PORTB.3==0)
{
while(PORTB.3==0)
{//Далее, все как у вас
if (c<=254) {

c++;
Аватара пользователя
ValBag
Потрогал лапой паяльник
Сообщения: 326
Зарегистрирован: Сб сен 06, 2008 12:56:13

Re: CodeVision AVR в вопросах и ответах

Сообщение ValBag »

DataLife
На PORTB.3 есть подтяжка внешним резистором? Т. е. как меняется состояние входа. Кнопкой?
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение pyzhman »

2DataLife: этим

Код: Выделить всё

if (PORTB.3==0) {

вы опрашиваете состояние самого порта, того, что там записано. В вашем случае надо

Код: Выделить всё

if (PINB.3==0) {
Docendo discimus
Аватара пользователя
rs39
Открыл глаза
Сообщения: 53
Зарегистрирован: Сб май 07, 2011 14:35:24
Откуда: Россия

Re: CodeVision AVR в вопросах и ответах

Сообщение rs39 »

Еще раз намекну, что нужно применять вложенный цикл while после провки состояния PIN-a.
Причем в нем проводить повторную проверку на состояние пина. Для того, чтобы на случай отрицания можно было выйти из закольцованного цикла while.
Иначе, войти то войдем, а выйти из него не сможем когда понадобится.

Если не прав то поправте пожалуйста, так как я тоже еще начинающий в этом деле :)
MaxNzk
Родился
Сообщения: 5
Зарегистрирован: Пт июл 09, 2010 19:05:48

Re: CodeVision AVR в вопросах и ответах

Сообщение MaxNzk »

Здравствуйте. Подскажите пожалуйста как правильно переделать строчку для CodeVisionAvr с WinAvr?
column_ptr[i] = pgm_read_byte(&(S_box[ column_ptr[i] ]));
flash const byte S_box[256] и column_ptr[i] тоже byte.
Аватара пользователя
DataLife
Вымогатель припоя
Сообщения: 601
Зарегистрирован: Пт фев 13, 2009 20:58:13
Откуда: Донецк

Re: CodeVision AVR в вопросах и ответах

Сообщение DataLife »

Спасибо все откликнувшимся.
Попробовал так, как советовал 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 в вопросах и ответах

Сообщение pyzhman »

Весь текст выложите. И PORTB.3 обязательно притяните к питанию, хотя бы внутренними.
Docendo discimus
Аватара пользователя
DataLife
Вымогатель припоя
Сообщения: 601
Зарегистрирован: Пт фев 13, 2009 20:58:13
Откуда: Донецк

Re: CodeVision AVR в вопросах и ответах

Сообщение DataLife »

Добавил файл к посту.
Пробовал перед началом программы писать и PORTB.3=1 и PINB.3=1 - всё равно ШИМ включается сразу. :cry:
Думаю, что что--то не то с портами входа-выхода...
Вложения
1.c
Прога на Си
(2.39 КБ) 502 скачивания
Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного.
ukw13
Родился
Сообщения: 2
Зарегистрирован: Вс июн 05, 2011 16:29:52

Re: CodeVision AVR в вопросах и ответах

Сообщение ukw13 »

DataLife


У вас какая то "хитрая" забава с записью в PINB.3. На кой такое? Ставите PORTB.3 входом с внутренней подтяжкой. Подключаете один вывод кнопки к PORTB.3, второй к GND. Желательно еще последовательно в эту цепь резистор Ом на 500. Все. Кнопку нажали, в PINB.3 появится лог.ноль и поехали. Пока кнопка не нажата там же лог.1.
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение pyzhman »

Это чё за фигня

Код: Выделить всё

PINB.3=1;

???
Где подтяжка

Код: Выделить всё

PORTB=0x00;

???
Docendo discimus
Аватара пользователя
DataLife
Вымогатель припоя
Сообщения: 601
Зарегистрирован: Пт фев 13, 2009 20:58:13
Откуда: Донецк

Re: CodeVision AVR в вопросах и ответах

Сообщение DataLife »

Тыкните меня носом в то место, где я не так делаю?

PINB.3=1; - до начала программы, что бы дальнейший цикл не начался раньше времени, подаю на пинБ.3 лог_1.
PORTB=0x00; - все ноги на "выходе", вроде бы как...

Расталкуйте, что тут имеется в виду под подтяжкой? Я что-то запутался.

Голова кругом... не моё это программирование...
SOS! :idea:
Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного.
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение pyzhman »

DataLife писал(а):не моё это программирование

Дружище! Может вам не на мк собрать, а на таймере? Зачем мучаться? Спросите у знатоков 555.
Docendo discimus
Ответить

Вернуться в «AVR»