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

Обсуждаем контроллеры компании Atmel.
uk8amk
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

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

Сообщение uk8amk »

kotriks писал(а):ноги в воздухе висят.

INT0 тоже в воздухе висит?
kotriks
Грызет канифоль
Сообщения: 274
Зарегистрирован: Чт апр 28, 2011 15:08:58

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

Сообщение kotriks »

ARV писал(а):
kotriks писал(а):ноги в воздухе висят.

а программно что с ногами? DDR в нулях или нет? Код тестовый или рабочий? Т.е. помимо усыпления что-то делается или перед усыплением делалось?

да в нулях, нечё не делает просто пытаюсь усыпить он не спит, я до этого делал вроде также на другом контроллере работало, мож проц подгоревший, потом на другом попробую щас денег нет )) INT0 тоже в воздухе висит.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

Висящие ноги в режиме сна могут давать увеличение потребляемого тока. лучше всего перевести их в режим ВЫХОДОВ. Для входа INT, используемого для пробуждения, соответственно, настройку надо сделать иначе.
Если он висит в воздухе и настроен на ВХОД - он может просто не давать спать, т.к. ловит наводки и пробуждает МК.
Читайте даташит, в общем.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
kotriks
Грызет канифоль
Сообщения: 274
Зарегистрирован: Чт апр 28, 2011 15:08:58

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

Сообщение kotriks »

пробуждение по INT0 у меня сделано так, тоесть по любому прерыванию. но пока не подавал сигнал дабы пока уснуть не могу.
регистры.

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

// External Interrupt(s) initialization
// INT0: On
EICRA=0x01;
EIMSK=0x01;
EIFR=0x01;
PCICR=0x00; 

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

interrupt [EXT_INT0] void ext_int0_isr(void)
{
sleep_disable();
}

а засыпаю, это всё в void main(void)

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

SMCR |= ((1<<SE) | (0<<SM2) | (1<<SM1) | (1<<SM0)); 
#asm("sleep")

while (1) он пустой там нечего нет пока! как засну будет :)
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

Для начала приведите порты в рекомендованное мной состояние. Вход запроса прерываний тоже как-то ПРАВИЛЬНО инициализируйте - полагаю, что он должен быть входом с подтяжкой. не видя ВСЕГО кода давать советы - последнее дело, вы намеков не понимаете: КОД В СТУДИЮ.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
uk8amk
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

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

Сообщение uk8amk »

kotriks писал(а):INT0 тоже в воздухе висит.

Ужас.
В таком случае предлагаю вообще отключить прерывания. Это единственная возможность понаблюдать за режимом сна.
kotriks
Грызет канифоль
Сообщения: 274
Зарегистрирован: Чт апр 28, 2011 15:08:58

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

Сообщение kotriks »

uk8amk писал(а):
kotriks писал(а):INT0 тоже в воздухе висит.

Ужас.
В таком случае предлагаю вообще отключить прерывания. Это единственная возможность понаблюдать за режимом сна.

да выключил регистры в ноль

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

ICRA=0x00;
EIMSK=0x00;
EIFR=0x00;
PCICR=0x00;

Сразу начал спать, но почему с включенным прерыванием не работает и не спит?
Как мне его будить если нельзя включить прерывание то :shock:
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

kotriks писал(а):Как мне его будить если нельзя включить прерывание то
я ж вам давно написал: прочесть даташит и сделать ПРАВИЛЬНО!

висящий вход - это очень чувствительный элемент. он может срабатывать от любого пустяка! самое меньшее - его надо подтягивать встроенным резистором к питанию:

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

DDRB = 0;
PORTB = 0xFF;
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
kotriks
Грызет канифоль
Сообщения: 274
Зарегистрирован: Чт апр 28, 2011 15:08:58

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

Сообщение kotriks »

Нашёл тут статейку и она мне помогла понять, что к чему, может кому пригодится.
https://sites.google.com/site/qeewiki/books/avr-guide/external-interrupts-on-the-atmega328
alexandergb
Родился
Сообщения: 1
Зарегистрирован: Ср мар 29, 2017 17:42:42

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

Сообщение alexandergb »

Есть проблема.
Откомпилировал проект на С в среде CodeVisionAVR 3.12
Получил cof файл и загрузил его в модель Atmega16 в Proteus 7.7.
Работает вроде бы правильно, НО
когда останавливаю симулятор (пауза) и смотрю исходный код,
то вижу только файл *.С, а файлов *.h нет в выпадающем окошке Source.
Не могу перейти (F11) к функции, которая расположена в *.h.
Прошу помощи, уважаемые.
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

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

Сообщение Аlex »

А он (протеус) и не показывает хидеры, только файлы с исполнительным кодом.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

alexandergb писал(а):Не могу перейти (F11) к функции, которая расположена в *.h.
В *.h не должно быть фунций. Максимум - их объявления, но сам код функции должен быть только в *.c файлах
Аватара пользователя
G@ns
Электрический кот
Сообщения: 1096
Зарегистрирован: Вт сен 22, 2009 10:44:23
Откуда: Орск
Контактная информация:

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

Сообщение G@ns »

Здравствуйте! Подскажите как вывести в CV Avr 3.29 русскоязычные буквы? #pragma rl+ rl- не помогает
[url=http://userbars.ru/][img]http://i.imgur.com/RfUzSb7.jpg[/img][/url]
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

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

Сообщение Аlex »

Куда вывести то ? :)
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

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

Сообщение oleg110592 »

стелепатирую - на lcd типа hd44780.
Можно примерно так:
http://www.cqham.ru/forum/showthread.ph ... post179937
немножко причесать
kotriks
Грызет канифоль
Сообщения: 274
Зарегистрирован: Чт апр 28, 2011 15:08:58

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

Сообщение kotriks »

Народ подскажите, после того как засыпаю

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

  SMCR |= ((1<<SE) | (0<<SM2) | (1<<SM1) | (1<<SM0));  
   #asm("sleep");

и просыпаемся по тактированию на инт0

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

SMCR &= ~(1 << SE);
SMCR |= ((0<<SM2) | (0<<SM0) | (0<<SM0));

отваливается UART не реагирует на комманды, что можно придумать чтобы пробудить его? Может какие то регистры надо перегрузить?
Аватара пользователя
mixon46
Говорящий с текстолитом
Сообщения: 1644
Зарегистрирован: Сб фев 18, 2012 15:42:29
Откуда: Курск

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

Сообщение mixon46 »

как воздействовать на порт целиком кроме одного из его битов? (одного из его выводов) наложить маску? как?
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

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

Сообщение Аlex »

Что значит воздействовать ? :) Поподробнее можно ?
Аватара пользователя
mixon46
Говорящий с текстолитом
Сообщения: 1644
Зарегистрирован: Сб фев 18, 2012 15:42:29
Откуда: Курск

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

Сообщение mixon46 »

вывожу цифру на семисигмент. задействованы 7 выводов одного порта. нужно наложить маску на младший бит что бы его значение осталось таким каким и было
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

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

Сообщение Аlex »

Сброс битов - "И" ("&") с маской.
Установка - "ИЛИ" ("|") с маской.
Ответить

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