Jump to content
Sign in to follow this  
REDs

Мк Pic16F628A Не Работает Кнопка

Recommended Posts

Здравствуйте. Написал простенькую программу для pic16f628a на компиляторе microC. Подключаю две кнопки и по их нажатию через UARTотправляется сообщение. Предварительно прогнал в протеосе, там все работает как надо, но на железе не работает. МК не воспринимает кнопки, попробовал прогнать еще три программки чисто на кнопку, все тоже самое, выходы работают, но кнопка игнорируется. Мультиметром все прозвонил и проверил напряжения, все в норме, при нажатии кнопки на ножку подается "0". Пробовал запускать и от внешнего кварца, и от внутреннего генератора, MCLR висит на питании, все как на схеме. Помогите пожалуйста разобраться в чем проблема.

Все варианты работают в протеосе. Но на железе не хотят. Возможно надо прописать что-то дополнительное чтобы МК воспринимал входящие данные?

post-192211-0-56505500-1463596107.png

post-192211-0-13734600-1463596108.png

post-192211-0-53461600-1463596108.png

post-192211-0-05277300-1463596109_thumb.png

post-192211-0-29746200-1463596110_thumb.png

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Антидребезг предусмотрен функцией Button(), в справке есть пример ее использования, обратите внимание на использование переменной oldstate (из примера).

Инициализировать UART надо перед основным циклом, незачем это делать в процедуре, которая должна вызываться неоднократно.

По железу: подтяжка входных портов к плюсу есть? Вижу, есть.

Edited by КЭС

Share this post


Link to post
Share on other sites

Металл-композит как альтернатива ферриту: дроссели Panasonic семейства ETQP

Современные электронные устройства требуют все более компактных и эффективных компонентов. Новые металл-композитные дроссели обладают рядом преимуществ перед дросселями с ферритовым сердечником. Они не имеют ярко выраженного насыщения, обладают отличными частотными свойствами и способны работать при температурах до 150°C и выше. Все это делает их альтернативой стандартным дросселям с ферритовым сердечником в широком спектре автомобильных и промышленных приложений.

Подробнее

...выходы работают...

Если бы не это, то можно было бы предположить, что работает вачдог и его надо отключить. Кстати, как проверили, что выводы работают?

Не по теме:

post-151375-0-06128200-1463645370.png

И нафига здесь антидребезг?

post-151375-0-98419900-1463645396.png

Протеус он такой протеус.


Я не раздаю удочки. Я продаю рыбу.

Share this post


Link to post
Share on other sites

Читайте документацию (стр. 63-64) - по умолчанию PortA включен в режиме аналогового входа компаратора. Отключается компаратор установкой бит CM2-CM0 регистра CMCON в 1.

void main() {
CMCON = 0x07; //Отключаем компаратор
TRISA = 0x03; //RA0 и RA1 входы
...

Share this post


Link to post
Share on other sites
                     

Новые литиевые ХИТы Fanso работают даже при +150ºС!

Когда приходится учитывать работу в экстремальных условиях, к выбору электронных компонентов подходишь с особой тщательностью. Высокие температуры, большие перепады давления, труднодоступность – все это требует специальной продукции. Склад КОМПЭЛ пополнился новыми литиевыми ХИТами Fanso, стабильно работающими даже при температуре до 150 ºС. Батарейки имеют номинальное напряжение 3,6 В, обладают ёмкостью от 700 до 14000 мАч, работоспособны в широком температурном диапазоне -20…150ºС и имеют низкий саморазряд (не более 3% в год в нормальных условиях хранения).

Подробнее о высокотемпературной линейке

Всем спасибо, да, дело было в компараторе

Странно что в хелпе МикроС об этом не упомянается

Share this post


Link to post
Share on other sites

Это относится не ко всем мк, поэтому даташит - наше все. На равных с хелпом рекомендую заглядывать в папку "..\Mikroelektronika\mikroC\Examples\" - там много интересного. Например:

/*
* Project name:
 adc_leds (LED blinking on GPIO with ADC)
* Copyright:
 (c) MikroElektronika, 2005-2008
* Description:
 This code demonstrates blinking of diodes connected on GPIO.
 ADC conversion value determinate which diodes go on and off.
* Test configuration:
 MCU:			 PIC12F675
 Dev.Board:	 EasyPIC5
 Oscillator:	 Internal, 04.000 MHz
 Ext. Modules: -
 SW:			 mikroC v8.0
* NOTES:
 None.
*/
unsigned temp;
void main() {
ANSEL = 4;					 // Configure AN2 pin as analog
GPIO = 0;						 // Initialize GPIO port
CMCON = 7;					 // Turn off comparators
TRISIO = 0;					 // Configure GPIO as output
TRISIO.GPIO2 = 1;				 // set pin GP2 as input
ADCON0.VCFG = 0;				 // Vdd as Vref
do {							 // beginning of a repeat loop
temp = Adc_Read(2);			 // Read AN2 channel
GPIO = temp >> 8;
} while (1);				 // endless loop (as this condition is always satisfied)
}//~

ПС. Код привел ради этих строк:

CMCON = 7; // Turn off comparators

TRISIO.GPIO2 = 1; // set pin GP2 as input

Edited by КЭС

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Similar Content

    • By Пентагрид
      Решил собрать источник питания с управлением через PIC16F628A (парой кнопок переключать нужные напряжения). Взял обычный импульсник на 15 В, из обратной связи выдрал TL431, оставил оптрон, его повесил на выход МК. Написал тестовую прошивку: задаётся Vref через VRCON, компаратор сравнивает и выдаёт на оптрон 1 или 0.
      Сделал два варианта прошивки: в одном проверка на срабатывание выполняется циклически, в другом - вызов прерывания при реакции компаратора. Оба варианта тестировал в Протеусе (потенциометр и светодиод), работают. На бредборде завёлся только первый (с нагрузкой и без). А с прерыванием не работает: при отсутствии нагрузки выдаёт нужное напряжение, но стоит только подключить нагрузку и даже если рукой коснуться - напряжение падает. С нагрузкой вообще не заводится.
      МК питаю отдельно (тлф. зарядка с домотанной вторичкой + 7805). Несколько раз прошёлся по прошивке, не нашёл за что зацепиться. Прошу совета.
      Схема
      В коде присутствуют рудименты для кнопок (пока не вводил).
       
      comp5nop.rar
    • By Пентагрид
      Здравствуйте, товарищи! Я только начал изучать программирование МК с ассемблера для пиков. Прошёл светодиодную мигалку и взялся за вывод текста с PIC16F628A на ЖКИ 1602А. Но не заладилось. Взял готовую  прошивку (сама она успешно запустилась), слегка подредактировал: задал соответствие DB0...DB7=RB0...RB7, вывел отдельные переменные address и symbol для адреса и символа ячейки на экране. Это выглядит следующим образом:
      MOVLW    0x00    ;вывод  единицы в первую ячейку
      MOVWF    address
      MOVLW    0b00110001
      MOVWF    symbol
      CALL    znak
       
      при этом  используются подпрограммы
      znak:
      MOVF    address,0        ;вывод адреса
      MOVWF    PORTB
      BCF    RS
      CALL    strob
      CALL    delay_39us
      MOVF    symbol,0        ;вывод символа
      MOVWF    PORTB
      BSF    RS
      CALL    strob
      CALL    delay_39us
      RETURN
      strob:
      BSF    E
      NOP        ;задержка 2 мкс
      NOP
      BCF    E
      RETURN
       
      Второй день до поздней ночи перепроверяю прошивку, надёжность и правильность на бредборде, RC-цепочку на MCLR. Скачанный проект работает, а моя программа - нет. Прошу помочь в поиске ошибки в коде.
      lcd-test.asm
    • Guest Ваня
      By Guest Ваня
      Помогите переделать программу трехфазного генератора pic16f628A на pic16f84A . есть hex и есть asm 
      pic16енкнек200гц.HEX
      pic16f628 200гц.asm
    • By maksa1986
      Добрый день. Собрал преобразователь по схеме Дмитрия Карелова. На холостом ходу все 3 фазы присутствуют. При подключении моторчика 36 вольт 200 герц 90 ватт, напряжение трех фаз просаживается до 2.5 вольт, транзисторы верхнего плеча трех фаз начинают нагреваться и соответственно моторчик не вращается. Кто что может сказать по этому поводу?

    • By UndBUFF
      Хочу реализовать передачу данных по блютуху. Возник такой вопрос:
      Как правильно подключать модуль блютух (HC-05) к МК (PIC16F628A)?
      У мк есть аппаратный UART. Данные от модуля, как я понял, тоже передаются по UART.
      Подключать надо так:
      RX(МК (7 нога)) - RX (Модуль (2 нога))
      TX(МК (8 нога)) - TX (Модуль (1 нога))
      или как на этой схеме:

      только вместо DB9 FEMALE подвести к RX и TX соответственно модуль. И если есть у кого-нибудь пример, поделитесь пожалуйста )
      Сильно не пинайте я только начинаю.
  • Сообщения

    • Вот ответ: никак, лучше искать спеца.
    • Гений диагностики... Я себе все лицо уже об руки разбил...
    • Всё верно. Но, -60 дБ, получаемые в этом случае, это весьма не мало. Это шум канала воспроизведения студийного магнитофона на 38-й скорости. Есть такая штука - Шкаф усилительный одноканальный ''Зал'' 50У-93, 50У-97. В его состав входит ламповый микрофонный предусилитель, лимитер, линейный усилитель и, наконец, УМ. Это, для понимания количества ламп, участвующих в процессе. Так вот, чувствительность микрофонного входа - 0,3 мВ. На входе трансформатор 1 : 5. Т.е, на сетке первой лампы 1,5 мВ. Соотношение С/Ш, для этого входа - 58 дБА. Накал всех предварительных ламп, кроме УМ, от единственной, для всех блоков предварительного усиления, обмотки накала с единственным балансировочным потенциометром Обмотка 13 - 14, R21, С9, С10. Как видите, даже такого простого решения достаточно для получения хорошего отношения С/Ш.
    • Если схему не нашёл, тогда карандаш в руки, прозвонку в ухо и оптику на глаз  - самому срисовывать! Для начала цепи питания от USB и Li-Pol, там как-раз должен быть и слайдер "On-Off", а уже по полученному фрагменту схемы сможем подобрать замену неисправному.
    • Кстати мы пережили мини-чёрный вторник, биржу и курс валют тресёт даже сегодня, все индексы в красной зоне, ни чего хорошего в этом нету, через месяц встряска долетит до реального сектора экономики, если не прекратится может случится финансовый кризис который привет к девальвации рубля (скорее всего не обвальной, но заметной в районе 10-15% ).
    • Это бесполезно, надо мастера искать, только настоящего, а не того, кто так отрекомендуется.
×
×
  • Create New...