Например TDA7294

Форум РадиоКот • Просмотр темы - Arduino->AmtelStudio7 - PCINT0_vect проблема с кнопкой
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт апр 16, 2024 23:40:10

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Arduino->AmtelStudio7 - PCINT0_vect проблема с кнопкой
СообщениеДобавлено: Чт май 31, 2018 21:53:30 
Первый раз сказал Мяу!

Зарегистрирован: Сб фев 19, 2011 14:35:08
Сообщений: 37
Рейтинг сообщения: 0
Друзья, помогите понять проблему. Написал код для обработки нажатия кнопки энкодера (обвязка по даташиту с кондером и pull-down презистором).
В среде ардуино после загрузки все работает как надо, а вот если скопилировать аналогичный код в AmtelStudio7, программа глючит. Прерывание по нажатию срабатывает с 10 раза, иногда светодиод может включится, а по отжатию кнопки не погаснуть. В среде ардуино аналогичный код работает ОТЛИЧНО.

Сама atmega328p-au снята с платы ардуино и запущена от встроенного генератора.

Спойлер#define F_CPU 8000000UL

#include <avr/io.h>
#include <avr/interrupt.h>


ISR(PCINT0_vect) { //обработка нажатия кнопки
PCICR=(0<<PCIE0); //выкл прерывание

if (PINB&0b00000001) {
PORTB |= (1<<(PORTB2));
}
else
{
PORTB &= ~(1<<(PORTB2));
}

PCICR=(1<<PCIE0); //вкл прерывание

}


int main(void) {

//Установка 12 нога PB0/PCINT0/arduino pin:8
PCICR |= (1<<PCIE0);//set Разрешаить прерывания блока
PCMSK0 |= (1<<PCINT0);//set Какая нога вызовет прерывание
DDRB |= (1<<DDB0);//set to input

//PB2 нога со светодиодом
DDRB |= (1<<DDB2);//set to output
sei();

while (1) {

}
return 0;
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino->AmtelStudio7 - PCINT0_vect проблема с кнопкой
СообщениеДобавлено: Пт июн 01, 2018 14:08:53 
Первый раз сказал Мяу!

Зарегистрирован: Сб фев 19, 2011 14:35:08
Сообщений: 37
Рейтинг сообщения: 0
Поставил CVAVR, загрузил - все работает. В чем проблема не понял. Придется видимо в нем работать.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino->AmtelStudio7 - PCINT0_vect проблема с кнопкой
СообщениеДобавлено: Пт июн 01, 2018 18:26:02 
Мудрый кот

Карма: 11
Рейтинг сообщений: 114
Зарегистрирован: Пт июн 01, 2018 07:28:45
Сообщений: 1759
Рейтинг сообщения: 0
Внутри обработчика прерывания бессмысленно отключать другие прерывания - все прерывания запрещены аппаратно. Вместо int main лучше писать void main и ничего не возвращать - так сэкономится пару байт памяти.
Логичнее в обработчике менять фронт прерывания, а не заниматься лишними проверками.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Arduino->AmtelStudio7 - PCINT0_vect проблема с кнопкой
СообщениеДобавлено: Сб июн 02, 2018 08:14:42 
Держит паяльник хвостом

Карма: 10
Рейтинг сообщений: 99
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 941
Рейтинг сообщения: 0
В0 настроен как выход, а значит сидит в 0. А вы на него 5 вольт ещё суёте. И как только работает...


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Arduino->AmtelStudio7 - PCINT0_vect проблема с кнопкой
СообщениеДобавлено: Сб июн 02, 2018 16:49:28 
Первый раз сказал Мяу!

Зарегистрирован: Сб фев 19, 2011 14:35:08
Сообщений: 37
Рейтинг сообщения: 0
Это очепятка. Прогнал через дебаггер amtel studio, все работает. В чем же причинааааа?


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Arduino->AmtelStudio7 - PCINT0_vect проблема с кнопкой
СообщениеДобавлено: Сб июн 02, 2018 17:40:10 
Держит паяльник хвостом

Карма: 10
Рейтинг сообщений: 99
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 941
Рейтинг сообщения: 0
Опечатка через копипаст, оригинально.)))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino->AmtelStudio7 - PCINT0_vect проблема с кнопкой
СообщениеДобавлено: Сб июн 02, 2018 21:09:39 
Первый раз сказал Мяу!

Зарегистрирован: Сб фев 19, 2011 14:35:08
Сообщений: 37
Рейтинг сообщения: 0
Ну вот, лучше что нибудь дельное подсказали ) может фьюзы или ещё что? Пробовал в cvavr code wizard, там все ставится в дефолт, там все работает, копирую в amtel studio, глючит.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino->AmtelStudio7 - PCINT0_vect проблема с кнопкой
СообщениеДобавлено: Вс июн 03, 2018 06:36:39 
Держит паяльник хвостом

Карма: 10
Рейтинг сообщений: 99
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 941
Рейтинг сообщения: 0
А вы бы делали что то, а то только помогите.
Текст выкладывайте, и оформите нормально.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino->AmtelStudio7 - PCINT0_vect проблема с кнопкой
СообщениеДобавлено: Вс июн 03, 2018 16:56:35 
Первый раз сказал Мяу!

Зарегистрирован: Сб фев 19, 2011 14:35:08
Сообщений: 37
Рейтинг сообщения: 0
Как же не делал, написал же что делал ) И что там оформлять, там кода на четверть страницы. Какая то видимо ерундовая проблема. Тот бит что вы нашли уже в качестве экспериментов проскочил, поэтому и написал что очепятка...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino->AmtelStudio7 - PCINT0_vect проблема с кнопкой
СообщениеДобавлено: Вс июн 03, 2018 17:23:24 
Держит паяльник хвостом

Карма: 10
Рейтинг сообщений: 99
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 941
Рейтинг сообщения: 0
Это вам надо или мне? Тогда выкладывайте с чем работаете на данный момент.
И уважать надо других, а то помогите и при этом ковыряйтесь в моём говне. Или - или.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino->AmtelStudio7 - PCINT0_vect проблема с кнопкой
СообщениеДобавлено: Вс июн 03, 2018 18:46:38 
Первый раз сказал Мяу!

Зарегистрирован: Сб фев 19, 2011 14:35:08
Сообщений: 37
Рейтинг сообщения: 0
Мне кажется вы несколько преувеличиваете, никакого неуважения нет в помине, одна сплошная уважуха ) И никакого моего "говна" в трех с половиной строчки простейшего кода я думаю нет, т.е. задача тривиальная - обработка нажатия кнопки и зажигания светодиода. Чтобы оно (мое говно) появилось хочу хотя бы решить эту проблему и настроить программное обеспечение. ) Поэтому еще раз: Программа работает в дебаггере, но не работает на плате - не срабатывает прерывание (срабатывает с 5-10 нажатия). Если тот же код загрузить через CVAVR все отлично работает. Если что, отсутствие "дребезга" кнопки проверено осциллографом. Сигнал с кнопки попадает на входную ножку МК (отсутствие дефектов монтажа). Кнопка подключена с кондером 0.1 и pull-down резистором 10К. ATMEGA 328P-AU запущена от внутреннего генератора. В настройках АМТЕЛ-а выбрана ATMEGA 328P. На всякий случай еще фьюзы МК прикладываю. Спасибо за внимание! ;-)


Спойлер#define F_CPU 8000000UL

#include <avr/io.h>
#include <avr/interrupt.h>


ISR(PCINT0_vect) { //обработка нажатия кнопки
PCICR=(0<<PCIE0); //выкл прерывание

if (PINB&0b00000001) {
PORTB |= (1<<(PORTB2));
}
else
{
PORTB &= ~(1<<(PORTB2));
}

PCICR=(1<<PCIE0); //вкл прерывание

}


int main(void) {

//Установка 12 нога PB0/PCINT0/arduino pin:8
PCICR |= (1<<PCIE0);//set Разрешаить прерывания блока
PCMSK0 |= (1<<PCINT0);//set Какая нога вызовет прерывание
DDRB |= (0<<DDB0);//1-выход, 0-вход
//PB2 нога со светодиодом
DDRB |= (1<<DDB2);//1-выход, 0-вход
sei();

while (1) {

}
return 0;
}


Вложения:
avrdude.jpg [112.7 KiB]
Скачиваний: 548
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino->AmtelStudio7 - PCINT0_vect проблема с кнопкой
СообщениеДобавлено: Пн июн 04, 2018 12:00:03 
Держит паяльник хвостом

Карма: 10
Рейтинг сообщений: 99
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 941
Рейтинг сообщения: 0
Говно - это когда вы начинаете предложение с маленькой буквы, пишете без знаков препинания, отступов и т.п. Когда мне нужно напрягаться что бы понять о чё вы. Аналогично и в тексте программы. Я должен смотреть на это и разбираться с вашим говнокодом, пусть даже с 3-мя строчками. Проблем нет, но заради чего? Вы пальцем не можете пошевелить, что бы привести это в удобочитаемый вид, при том что это ВАМ надо, а хотите получить решение вашей проблемы. Вот это и называется неуважением. Это ж как 2х2, что тут можно разжевывать.
Удачи!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino->AmtelStudio7 - PCINT0_vect проблема с кнопкой
СообщениеДобавлено: Пн июн 04, 2018 16:52:09 
Первый раз сказал Мяу!

Зарегистрирован: Сб фев 19, 2011 14:35:08
Сообщений: 37
Рейтинг сообщения: 0
Ппц. Удобочитаемый это как, я просто не понимаю о чем речь? Там все с комментами, если об этом, ну кроме записи в порт, но тут даже мне не требуется комментарий. :shock:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino->AmtelStudio7 - PCINT0_vect проблема с кнопкой
СообщениеДобавлено: Вт июн 05, 2018 22:27:12 
Первый раз сказал Мяу!

Зарегистрирован: Сб фев 19, 2011 14:35:08
Сообщений: 37
Рейтинг сообщения: 0
В результате выяснилось что МК работает не стабильно от внутреннего генератора на частоте 8Мгц! Включил по дефолту из даташита CKDIV8, т.е. частота /8 и все заработало… Правда тут 1Мгц будет. Не понятно не работает в принципе на 8-ми или что, мне и 1-го хватит ))). Так что кто все-таки столкнётся с подобной проблемой теперь знает шо делать. А то тут столько народу ходит, то ли лень писать то ли программистов нет, просто удивительно!!! Один товарищ тут развел оффтоп - бредоромашку про уважение/не уважение... ШОК! По фату такие горе советчики, лучше вообще ничего не пишите. Если руки чешутся а заний НУЛЬ, посмотрите хорошее кино на ххх.ком…


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y