WinAvr в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
shads
Опытный кот
Сообщения: 882
Зарегистрирован: Ср фев 22, 2012 01:25:21

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

Сообщение shads »

avreal писал(а):Меню Tools (это ж надо туда затолкать!) / Options / General / Filetabs: выпадающий список, выбрать Filename Only
После чего сужается закладка текущего файла, но потом все становятся короткими.
Ой пасип......
Я аж вздохнул с облегчением.....
И действительно это ж надо было так спрятать, в жизни бы сам не нашел. Вдоль и поперек излазил настройки, а туда не догадался лезть.

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

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

Сообщение rs39 »

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

C:\Program Files\Atmel\AVR Tools\AvrStudio4\edit\AvrStudio_c.ini 

Вот этот файл надо ручками править. Это глобальные настройки.
Те же что правятся из Студии, имеют место только для текущего проекта. Вот потому все и сбрасывается при создании нового проекта.
Аватара пользователя
shads
Опытный кот
Сообщения: 882
Зарегистрирован: Ср фев 22, 2012 01:25:21

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

Сообщение shads »

Дык у меня даже при рестарте программы и загрузке того же проекта, цвет все равно сбрасывается.....
Я бы рад был бы если бы он хотябы в другом проекте сбрасывался, атож при каждом запуске проги поправляю вручную.....
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

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

Сообщение vitalik_1984 »

Запускайте от имени администратора в седьмой есть такая фишка.Короче права доступа нужно настроить.
Аватара пользователя
shads
Опытный кот
Сообщения: 882
Зарегистрирован: Ср фев 22, 2012 01:25:21

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

Сообщение shads »

vitalik_1984 Пасип, теперь понял. Хотя знал о разнице в запуске программ, но тут чтото не додумался.....

rs39 писал(а):

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

C:\Program Files\Atmel\AVR Tools\AvrStudio4\edit\AvrStudio_c.ini 
Пасип огромное..... Вааще супер, один раз вбил, и забыл..... Откуда вы тока знаете такие тонкости? Диву даюсь.....
Аватара пользователя
rs39
Открыл глаза
Сообщения: 53
Зарегистрирован: Сб май 07, 2011 14:35:24
Откуда: Россия

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

Сообщение rs39 »

shads писал(а):Пасип огромное..... Вааще супер, один раз вбил, и забыл..... Откуда вы тока знаете такие тонкости? Диву даюсь.....

Да просто с Виндой "на ты" уж 2 десяток пошел. А точнее с ее тонкостями. Ну и общий стаж программирования (не в avr!) в винде примерно такой-же :)
malex66
Открыл глаза
Сообщения: 45
Зарегистрирован: Вс янв 22, 2012 21:57:43

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

Сообщение malex66 »

Доброго времени...

разбираясь с одной прогой - встретилось следующее

/*DDRx*/
#define _DDRx *(__DDRx_p)
/*PORTx*/
#define _PORTx *(__DDRx_p+1)
/*PINx*/
#define _PINx *(__DDRx_p-1)

так вот - где найти описание этого "__DDRx_p" ?
в этой проге его нет. в include winavr тоже не находится...
подскажите пожалуйста
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

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

Сообщение vitalik_1984 »

Смотрите даташит на ваш конкретный Мк. Там есть раздел таблица регистров. как правило регистры одного порта идут в одном и том же порядке друг за другом, на этом и основана эта запись.
вам она в общем то не нужна - все это прописано в файле io.h.

Если только в самом проекте не использованы эти определения.В этом случае можно просто заменить описанное определение вот этим.

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

 /*DDRx*/
#define _DDRx  *DDRx
/*PORTx*/
#define _PORTx  *PORTx
/*PINx*/
#define _PINx  *PINx   

Но это не обязательно что сразу заработает.Нужно смотреть конкретно что в коде.
Аватара пользователя
slavokhire5
Прорезались зубы
Сообщения: 202
Зарегистрирован: Пн сен 26, 2011 13:48:25
Откуда: Харьков

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

Сообщение slavokhire5 »

Доброго времени суток:) Помогите пожалуйста с датчиком уровня топлива. Почти допилил на симуляторе, но пару вопросов никак не решаются =)
у меня не хотят работать прерывания на INT1 и кнопка на PA5 (хотя с INT0 и PA6 все нормально, инициализируются в общей куче).
контроллер attiny861, симуляция в proteus 7.10, пишу в WinAVR. схема и код в архивчике

*на #define PLUS установлено неправильное значение. должно быть 0x20. но это особо не помогает
Вложения
2.rar
(78.11 КБ) 179 скачиваний
Последний раз редактировалось slavokhire5 Пт ноя 02, 2012 09:25:08, всего редактировалось 1 раз.
Осилит дорогу идущий
--------------------------
Пишу на Си за еду
Аватара пользователя
slavokhire5
Прорезались зубы
Сообщения: 202
Зарегистрирован: Пн сен 26, 2011 13:48:25
Откуда: Харьков

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

Сообщение slavokhire5 »

**проблема ушла сама собой с переходом на 8-ю мегу. тот же код работал нормально
Осилит дорогу идущий
--------------------------
Пишу на Си за еду
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

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

Сообщение vitalik_1984 »

Я заметил в вашем коде при нажатии на кнопку по прерыванию выключается то самое прерывание причем с другой кнопки, а где же оно включается в рабочем цикле я так и не увидел.И зачем оно выключается так и не понял.

Выходит что какую кнопку нажмешь первой та и будет постоянно у второй кнопки прерывание выключать.
Аватара пользователя
slavokhire5
Прорезались зубы
Сообщения: 202
Зарегистрирован: Пн сен 26, 2011 13:48:25
Откуда: Харьков

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

Сообщение slavokhire5 »

есть такое :) в нынешнем варианте я глобально запрещаю прерывания, даю задержку 300мс чтобы избавиться от дребезга, очищаю флаги прерываний на всякий случай, а затем возвращаюсь в основную программу
Осилит дорогу идущий
--------------------------
Пишу на Си за еду
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

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

Сообщение vitalik_1984 »

Так может нынешний вариант и с предыдущим контролером будет работать?
Только непонятно как ваш код с глобальными запретами будет работать, если в проект захотите добавить динамическую индикацию.
Аватара пользователя
slavokhire5
Прорезались зубы
Сообщения: 202
Зарегистрирован: Пн сен 26, 2011 13:48:25
Откуда: Харьков

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

Сообщение slavokhire5 »

может и будет) но до перехода на др контроллер не хотел)
*прерывания запрещаются всего на 300мс. за это время индикация просто мигнет. тем более это режим настройки. как по мне, удобнее, когда индикатор подмигивает в такт нажатиям.
Осилит дорогу идущий
--------------------------
Пишу на Си за еду
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

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

Сообщение vitalik_1984 »

300 миллисекунд это как минимум 3000 тактов убитых впустую.Хорошо еще что только при нажатии клавиши:)))
Вообще можно в прерывании динамики весь цикл отработки нажатия сделать, в том числе задержку перед следующим срабатыванием.И к тому же позволит освободить пару внешних прерываний. ;-)
В поисках истины человек развивается.
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

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

Сообщение FreshMan »

пытаюсь слезть с СV
как будет правильно написать сии строки ?

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

#define kn_1 PIND.5
Tell Me The Truth
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

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

Сообщение vitalik_1984 »

В таком же удобном формате не получится использовать, только если создать битовые поля для портов, но это я не знаю как получится.Битовые поля это маски там всякие применяются, а в CV то одна всего команда изменения/проверки бита в асм коде.
Стандартный способ определения состояния портов

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

#define KN_1 (PIND&(1<<PIND5))
if(KN_1){
// Тут делаем что хотим
};
 
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

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

Сообщение FreshMan »

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

PIND&(1<<PIND5)

а как это так мы просто записываем в 5 пин порта Д единицу ?
он же сконфигурирован на вход а не на выход......, вот если бы он был выходом тогда можна смело записать PORTD & (1<<5)
это я понимаю, а то что написал ты как то не доходит...., обясни пожалуйста :tea:
Tell Me The Truth
Аватара пользователя
shads
Опытный кот
Сообщения: 882
Зарегистрирован: Ср фев 22, 2012 01:25:21

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

Сообщение shads »

FreshMan писал(а):

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

PIND&(1<<PIND5)

а как это так мы просто записываем в 5 пин порта Д единицу ?
он же сконфигурирован на вход а не на выход......, вот если бы он был выходом тогда можна смело записать PORTD & (1<<5)
это я понимаю, а то что написал ты как то не доходит...., обясни пожалуйста :tea:
Это не вывод в пин, это проверка значения пина.....

Вывод в пин будет писаться так:

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

PIND |= (1<<PIND5)
И кстати это нормально, такая команда инвертирует соответствующий вывод порта.
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

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

Сообщение FreshMan »

в одной из статей нашол

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

PIND&(1<<PD5)

это аналог вышеприведенной команды ?
Tell Me The Truth
Ответить

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