Страница 41 из 111
Re: WinAvr в вопросах и ответах
Добавлено: Чт авг 11, 2011 08:55:12
Antifritz
Есть МК ATTiny13. К ноге PB1/INT0 подключена кнопка (еще через резистор эта ножка подключена к GND, чтобы создавать лог. "0", пока кнопка не нажата). Требуется по нажатию этой кнопки переводить МК в спящий режим (Power down), а при последующем нажатии выводить из него.
Код: Выделить всё
if(bit_is_set(PINB,1))
{
while(bit_is_set(PINB,1))
{}
DDRB=0xFF;
PORTB=0;
TCCR0A=0;
TCCR0B=0;
GIMSK=64;
MCUCR=3;
sei();
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
sleep_mode();
}
В таком случае МК как бы отрубается(но не факт), но через мгновение снова включается (если верить дебагеру AVRStudio, то после пробуждения программа начинает работать с самого начала). Если убрать sei(), то МК засыпает и уже ни на что, кроме сброса питания не реагирует. Помогите пожалуйста, что я делаю не так?
Re: WinAvr в вопросах и ответах
Добавлено: Чт авг 11, 2011 09:01:45
Мастер Ломастер
для INT0 пробуждение возможно только по запросу "низкий уровень на INT0", а у вас низкий там постоянно. переделайте на пробуждение по PCINT1 - там можно настроить на запрос по любому уровню.
ну и не забывайте, что кнопка - это источник дребезга, так что и при засыпании, и при пробуждении с ним надо бороться.
P.S. во многих случаях удобно пробуждаться именно по сбросу - кнопку на вывод 1 ставить.
Re: WinAvr в вопросах и ответах
Добавлено: Чт авг 11, 2011 09:17:04
Antifritz
Мастер Ломастер писал(а):переделайте на пробуждение по PCINT1
А в чем заключается переделывание?
Re: WinAvr в вопросах и ответах
Добавлено: Чт авг 11, 2011 09:17:59
Мастер Ломастер
в настройке режима прерывания - см. даташит.
Re: WinAvr в вопросах и ответах
Добавлено: Пн авг 29, 2011 18:27:13
TICLIR
Доброе время суток! Изучая исходники наткнулся на непонятное(пока) для меня определение
uchar usbInputBufOffset; uchar usbDeviceAddr; я так понимаю это обявляются переменные
а что это за uchar и ещё встречаются schar подскажите пожалуйста.
Пишут что на WinAvr было создано это дело.
Re: WinAvr в вопросах и ответах
Добавлено: Пн авг 29, 2011 18:34:05
Мастер Ломастер
TICLIR писал(а):Доброе время суток! Изучая исходники наткнулся на непонятное(пока) для меня определение
uchar usbInputBufOffset; uchar usbDeviceAddr; я так понимаю это обявляются переменные
а что это за uchar и ещё встречаются schar подскажите пожалуйста.
Пишут что на WinAvr было создано это дело.
ищите эти определения в подключаемых хидерах в проекте. скорее всего
uchar это
unsigned char...
Re: WinAvr в вопросах и ответах
Добавлено: Пн авг 29, 2011 18:57:57
TICLIR
Мастер Ломастер писал(а):TICLIR писал(а):Доброе время суток! Изучая исходники наткнулся на непонятное(пока) для меня определение
uchar usbInputBufOffset; uchar usbDeviceAddr; я так понимаю это обявляются переменные
а что это за uchar и ещё встречаются schar подскажите пожалуйста.
Пишут что на WinAvr было создано это дело.
ищите эти определения в подключаемых хидерах в проекте. скорее всего
uchar это
unsigned char...
Ну точно, в заголовочном файле и обнаружил
#define schar signed char; #define uchar unsigned char;
благодарю за помощ!
Re: WinAvr в вопросах и ответах
Добавлено: Чт сен 01, 2011 14:45:20
GP1
и так...
ввиду того что я поменял свою подпись
сразу возник вопрос:
как "засунуть" константу во flash память?
конструкция
лепит мою константу в RAM...
зы юзаю связку студия 4.18+winavr
Re: WinAvr в вопросах и ответах
Добавлено: Чт сен 01, 2011 15:32:39
Rusja2008
В этой теме уже поднимался такой вопрос
Код: Выделить всё
#include <avr/pgmspace.h>
int ks PROGMEM=6000;
считывать с помощью
Код: Выделить всё
pgm_read_byte(addr);
pgm_read_word(addr);
pgm_read_dword(addr);
pgm_read_float(addr);
Re: WinAvr в вопросах и ответах
Добавлено: Чт сен 01, 2011 17:32:02
GP1
спасибо!
видимо плохо искал.

Re: WinAvr в вопросах и ответах
Добавлено: Сб сен 17, 2011 11:12:38
alexx82
Подозреваю что данный вопрос обсуждался уже 100500 раз. Но у меня нет сил просматривать все 40 страниц данной темы.
Обьясните кто-нибудь придурку (то бишь мне), что делать с линуксовым файлом Makefile, лежащим во многих проектах, написанных под WinAVR? Чем его открывать?
Re: WinAvr в вопросах и ответах
Добавлено: Сб сен 17, 2011 13:26:05
Мастер Ломастер
alexx82 писал(а):Обьясните кто-нибудь придурку (то бишь мне), что делать с линуксовым файлом Makefile, лежащим во многих проектах, написанных под WinAVR? Чем его открывать?
открывать этот файл надо текстовым редатором, хоть бы и notepad-ом. это если вам нужно внести в него изменения. а если собрать проект, то ничего открывать не надо, надо (имея корректно установленный WinAVR) просто открыть папку, в которой есть makefile и выполнить из командной строки команду
make all. то есть, если ваш проект находится в папке C:\MyPrj, надо открыть консоль (запуск cmd.exe) и ввести следующее:
cd c:\myprj
make all
Re: WinAvr в вопросах и ответах
Добавлено: Сб сен 17, 2011 13:59:47
alexx82
просто открыть папку, в которой есть makefile и выполнить из командной строки команду make all
Пасиб. Сам бы за что бы не догадался.
Re: WinAvr в вопросах и ответах
Добавлено: Пн сен 19, 2011 20:19:16
____Eugene____
здраствуйте
почему функция SUM добавляется в код веть она даже не вызывается
//WinAVR-20100110//AVR Studio 4.16 Build628
#include <avr/io.h>
unsigned char sum (unsigned char i,unsigned char u);
int main( void )
{
while (1){PORTB=1,PORTB=0;}
return 0;
}//main
unsigned char sum (unsigned char i,unsigned char u)
{//sum
PORTB=i;
PORTB=(i-u);
PORTB=(i+u);
PORTB=(i/u);
PORTB=(i+u);
PORTB==(i-u);
PORTB-=(i+u);
PORTB*=(i/u);
PORTB/=(i+u);
return i+u;
}//sum
Re: WinAvr в вопросах и ответах
Добавлено: Пн сен 19, 2011 21:09:44
Мастер Ломастер
____Eugene____ писал(а):почему функция SUM добавляется в код веть она даже не вызывается
потому что вы не дали указание компоновщику исключать неиспользуемые функции из кода.
Re: WinAvr в вопросах и ответах
Добавлено: Ср сен 21, 2011 14:24:21
____Eugene____
Мастер Ломастер писал(а):____Eugene____ писал(а):почему функция SUM добавляется в код веть она даже не вызывается
потому что вы не дали указание компоновщику исключать неиспользуемые функции из кода.
а можно на примере как и куда прописывать ключи
Re: WinAvr в вопросах и ответах
Добавлено: Ср сен 21, 2011 15:03:52
Мастер Ломастер
в командной строке компилятору надо указать
-ffunction-sections -Wl,-gc-sections
внимание! надо вводить точно так, как тут написано, не добавлять пробелов, не менять регистр и т.п. самодеятельности. если работаете в AVR Studio, эти ключики надо указать в дополнительных настройках проекта - первый для компилятора, второй для компоновщика. результат вас поразит

Re: WinAvr в вопросах и ответах
Добавлено: Сб сен 24, 2011 16:34:20
TICLIR
Доброе время суток! Вопросик так себе! При открывание WinAvr , если программа для контроллера большая, то для компактности
приходится давить на минусики что бы свернулись некоторые функции или массивы , а может просто надо где нибудь поставить или убрать галочку , что бы при открывании они сразу уже были свёрнуты.
Re: WinAvr в вопросах и ответах
Добавлено: Пн окт 03, 2011 17:56:36
TICLIR
TICLIR писал(а):Доброе время суток! Вопросик так себе! При открывание WinAvr , если программа для контроллера большая, то для компактности
приходится давить на минусики что бы свернулись некоторые функции или массивы , а может просто надо где нибудь поставить или убрать галочку , что бы при открывании они сразу уже были свёрнуты.
И всё-таки я нашёл как это сделать - View/Folding/Collapse All Folds
Re: WinAvr в вопросах и ответах
Добавлено: Пн окт 10, 2011 20:53:33
svs39
TICLIR писал(а):
И всё-таки я нашёл как это сделать - View/Folding/Collapse All Folds
но это надо делать каждый раз после открытия проекта?