Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
06.03.2016, 10:27
|
#11
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,221 раз(а) в 1,319 сообщении(ях)
|
Re: MPLAB X IDE прерывания
Ну и зачем сиё .... ээээ... извращение?
|
|
|
Сказали "Спасибо" NewWriter
|
|
|
09.03.2016, 12:21
|
#12
|
Заблокирован
Регистрация: 13.06.2008
Сообщений: 248
Сказал спасибо: 3
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
|
Re: MPLAB X IDE прерывания
У меня две темы прошли с успехом, а у вас успеха пока невидно.
|
|
|
|
09.03.2016, 12:33
|
#13
|
Гражданин KAZUS.RU
Регистрация: 28.11.2007
Адрес: харьков
Сообщений: 850
Сказал спасибо: 339
Сказали Спасибо 43 раз(а) в 23 сообщении(ях)
|
Re: MPLAB X IDE прерывания
с прерываниями разобрался - выше пост как происходит прерывание по fault . вылезла другая проблема - опрос кнопок ... вроде как ничего необычного но идет сбой
Цитата:
|
unsigned char Keyb()
{
TRISBbits.TRISB6 = 1;
TRISC = 0x000F;
knum = 0;
_RC8 = 0;
_RC7 = 1;
_RC6 = 1;
__delay_ms(1);
if (!BUT) knum = 1;
_RC8 = 1;
_RC7 = 0;
_RC6 = 1;
__delay_ms(1);
if (!BUT) knum = 2;
_RC8 = 1;
_RC7 = 1;
_RC6 = 0;
__delay_ms(1);
if (!BUT) knum = 3;
if (!start_) knum = 4;
if (!stop_) knum = 5;
__delay_ms(50);
if (knum_old != knum )knum_old = knum;
else knum = 0;
return knum;
}
|
нажимаю одну а код приходит с другой. на этих выводах еще висит LCD. по идее не должен мешать - так как LATC (LCD) идет на выход а вход один - PORTB.6 . проблема по 1,2,3
|
|
|
|
22.06.2016, 08:18
|
#14
|
Заблокирован
Регистрация: 13.06.2008
Сообщений: 248
Сказал спасибо: 3
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
|
Re: MPLAB X IDE прерывания
У вас опрос каким образом кнопок. Посьба листинг со всем относящимся.
|
|
|
|
22.06.2016, 10:43
|
#15
|
Гражданин KAZUS.RU
Регистрация: 28.11.2007
Адрес: харьков
Сообщений: 850
Сказал спасибо: 339
Сказали Спасибо 43 раз(а) в 23 сообщении(ях)
|
Re: MPLAB X IDE прерывания
Цитата:
|
unsigned char Keyb()
{
knum = 0;
__delay_ms(1);
if (!K1) knum = 1;
__delay_ms(1);
if (!K2) knum = 2;
__delay_ms(1);
if (!K3) knum = 3;
if (knum_old != knum )knum_old = knum;
else knum = 0;
__delay_ms(50);
return knum;
}
|
сделал вот так - проблема ушла , да и еще переделал плату управления. убрал опрос кнопок с вывода программирования т.к на них не возможно повесить конденсаторы для блокировки дребезга!
Последний раз редактировалось Dtolok; 22.06.2016 в 11:16.
|
|
|
|
22.06.2016, 11:08
|
#16
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: MPLAB X IDE прерывания
__________________
Осторожно , злой кот
|
|
|
|
22.06.2016, 11:22
|
#17
|
Заблокирован
Регистрация: 13.06.2008
Сообщений: 248
Сказал спасибо: 3
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
|
Re: MPLAB X IDE прерывания
У вас не всё. В условие if(!k1)- к1 на какой порт определили? В начале программы должно быть. И если ещё LCD на том же выводе, не боитесь запутаться? Попробуйте сделать сигнал готовности клавиатуры. По этому сигналу отключайте LCD и подключайте клавиатуру.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 00:14.
|
|