INT0 тоже в воздухе висит?kotriks писал(а):ноги в воздухе висят.
CodeVision AVR в вопросах и ответах
- Реклама
- Сообщения: 274
- Зарегистрирован: Чт апр 28, 2011 15:08:58
да в нулях, нечё не делает просто пытаюсь усыпить он не спит, я до этого делал вроде также на другом контроллере работало, мож проц подгоревший, потом на другом попробую щас денег нет )) INT0 тоже в воздухе висит.ARV писал(а):а программно что с ногами? DDR в нулях или нет? Код тестовый или рабочий? Т.е. помимо усыпления что-то делается или перед усыплением делалось?kotriks писал(а):ноги в воздухе висят.
Висящие ноги в режиме сна могут давать увеличение потребляемого тока. лучше всего перевести их в режим ВЫХОДОВ. Для входа INT, используемого для пробуждения, соответственно, настройку надо сделать иначе.
Если он висит в воздухе и настроен на ВХОД - он может просто не давать спать, т.к. ловит наводки и пробуждает МК.
Читайте даташит, в общем.
Если он висит в воздухе и настроен на ВХОД - он может просто не давать спать, т.к. ловит наводки и пробуждает МК.
Читайте даташит, в общем.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 274
- Зарегистрирован: Чт апр 28, 2011 15:08:58
пробуждение по INT0 у меня сделано так, тоесть по любому прерыванию. но пока не подавал сигнал дабы пока уснуть не могу.
регистры.
а засыпаю, это всё в void main(void)
while (1) он пустой там нечего нет пока! как засну будет 
регистры.
Код: Выделить всё
// External Interrupt(s) initialization
// INT0: On
EICRA=0x01;
EIMSK=0x01;
EIFR=0x01;
PCICR=0x00;
Код: Выделить всё
interrupt [EXT_INT0] void ext_int0_isr(void)
{
sleep_disable();
}Код: Выделить всё
SMCR |= ((1<<SE) | (0<<SM2) | (1<<SM1) | (1<<SM0));
#asm("sleep")
Для начала приведите порты в рекомендованное мной состояние. Вход запроса прерываний тоже как-то ПРАВИЛЬНО инициализируйте - полагаю, что он должен быть входом с подтяжкой. не видя ВСЕГО кода давать советы - последнее дело, вы намеков не понимаете: КОД В СТУДИЮ.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Реклама
Ужас.kotriks писал(а):INT0 тоже в воздухе висит.
В таком случае предлагаю вообще отключить прерывания. Это единственная возможность понаблюдать за режимом сна.
- Сообщения: 274
- Зарегистрирован: Чт апр 28, 2011 15:08:58
да выключил регистры в нольuk8amk писал(а):Ужас.kotriks писал(а):INT0 тоже в воздухе висит.
В таком случае предлагаю вообще отключить прерывания. Это единственная возможность понаблюдать за режимом сна.
Код: Выделить всё
ICRA=0x00;
EIMSK=0x00;
EIFR=0x00;
PCICR=0x00;
Как мне его будить если нельзя включить прерывание то
я ж вам давно написал: прочесть даташит и сделать ПРАВИЛЬНО!kotriks писал(а):Как мне его будить если нельзя включить прерывание то
висящий вход - это очень чувствительный элемент. он может срабатывать от любого пустяка! самое меньшее - его надо подтягивать встроенным резистором к питанию:
Код: Выделить всё
DDRB = 0;
PORTB = 0xFF;если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 274
- Зарегистрирован: Чт апр 28, 2011 15:08:58
Нашёл тут статейку и она мне помогла понять, что к чему, может кому пригодится.
https://sites.google.com/site/qeewiki/b ... -atmega328
https://sites.google.com/site/qeewiki/b ... -atmega328
- Сообщения: 1
- Зарегистрирован: Ср мар 29, 2017 17:42:42
Есть проблема.
Откомпилировал проект на С в среде CodeVisionAVR 3.12
Получил cof файл и загрузил его в модель Atmega16 в Proteus 7.7.
Работает вроде бы правильно, НО
когда останавливаю симулятор (пауза) и смотрю исходный код,
то вижу только файл *.С, а файлов *.h нет в выпадающем окошке Source.
Не могу перейти (F11) к функции, которая расположена в *.h.
Прошу помощи, уважаемые.
Откомпилировал проект на С в среде CodeVisionAVR 3.12
Получил cof файл и загрузил его в модель Atmega16 в Proteus 7.7.
Работает вроде бы правильно, НО
когда останавливаю симулятор (пауза) и смотрю исходный код,
то вижу только файл *.С, а файлов *.h нет в выпадающем окошке Source.
Не могу перейти (F11) к функции, которая расположена в *.h.
Прошу помощи, уважаемые.
А он (протеус) и не показывает хидеры, только файлы с исполнительным кодом.
В *.h не должно быть фунций. Максимум - их объявления, но сам код функции должен быть только в *.c файлахalexandergb писал(а):Не могу перейти (F11) к функции, которая расположена в *.h.
Здравствуйте! Подскажите как вывести в CV Avr 3.29 русскоязычные буквы? #pragma rl+ rl- не помогает
[url=http://userbars.ru/][img]http://i.imgur.com/RfUzSb7.jpg[/img][/url]
Куда вывести то ? 
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
стелепатирую - на lcd типа hd44780.
Можно примерно так:
http://www.cqham.ru/forum/showthread.ph ... post179937
немножко причесать
Можно примерно так:
http://www.cqham.ru/forum/showthread.ph ... post179937
немножко причесать
- Сообщения: 274
- Зарегистрирован: Чт апр 28, 2011 15:08:58
Народ подскажите, после того как засыпаю
и просыпаемся по тактированию на инт0
отваливается UART не реагирует на комманды, что можно придумать чтобы пробудить его? Может какие то регистры надо перегрузить?
Код: Выделить всё
SMCR |= ((1<<SE) | (0<<SM2) | (1<<SM1) | (1<<SM0));
#asm("sleep"); Код: Выделить всё
SMCR &= ~(1 << SE);
SMCR |= ((0<<SM2) | (0<<SM0) | (0<<SM0)); как воздействовать на порт целиком кроме одного из его битов? (одного из его выводов) наложить маску? как?
Что значит воздействовать ?
Поподробнее можно ?
вывожу цифру на семисигмент. задействованы 7 выводов одного порта. нужно наложить маску на младший бит что бы его значение осталось таким каким и было
Сброс битов - "И" ("&") с маской.
Установка - "ИЛИ" ("|") с маской.
Установка - "ИЛИ" ("|") с маской.


