| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Проблем с входовете на PIC16F627A http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=14905 |
Страница 1 от 2 |
| Автор: | forscience [ Съб Ное 19, 2016 9:11 pm ] | |||||||||
| Заглавие: | Проблем с входовете на PIC16F627A | |||||||||
Здравейте. На кратко опитвам се да направя нещо като клавиатура която контролира 7 сегментен дисплей. Използвам PIC16F627A, MPLAB X, и езикът C. Съответно в кода съм декларирал кои битове да са входове и кои изходи. Искам, чрез натискане на Бутон 1 (подаване на 1-ца към пин на микроконтролера) да светнат няколко диода. Проблема е, че те светват директно с включването на чипа. Предполагам, че всичко идва от IF-a, но Вие преценете. Ето целия код:
|
||||||||||
| Автор: | ToHu [ Съб Ное 19, 2016 9:16 pm ] |
| Заглавие: | Re: Проблем с входовете на PIC16F627A |
тоя пък for странно решение while(true) Но остави това, от дефиницията идва, не изпозлвам mplab но не знам защо си мисля че така дефинирано ще трябва да изпозлваш някоя от вградените функции за тест на бит а не директно да го проверяваш. Мисля че беше нещо като portbits.RA5 ... ама да не те излъжа, както казах MPAB не изпозлвам. |
|
| Автор: | forscience [ Съб Ное 19, 2016 9:39 pm ] | |||||||||
| Заглавие: | Re: Проблем с входовете на PIC16F627A | |||||||||
Ето код от друг мой проект който е със чип 16F628 и входа работи. Но тук е деклариран като вход целия PORTB....
|
||||||||||
| Автор: | ToHu [ Съб Ное 19, 2016 9:49 pm ] |
| Заглавие: | Re: Проблем с входовете на PIC16F627A |
Не ми се рови по документацията на mplab но все си мисля че така дефинираш байт но .... прочети дефинициите. По прицнип това което си направил никога не се прави така, трябва д аимаш дебонсинг най-малкото но това е друг въпрос ... погледни дефинициите, според мен не е така но може и да греша, възможно е RB3 някъде да е ддефинирано като 0x06.3 a MPLAB да е по умен от CSS и като види такова да знае че това е битова променлива. |
|
| Автор: | veryoldman [ Съб Ное 19, 2016 10:05 pm ] |
| Заглавие: | Re: Проблем с входовете на PIC16F627A |
Не виждам никъде да конфигурираш CMCON. След Reset входовете от RA0 до RA3 са аналогови компаратори. Трябва ти CM<2:0>=111. |
|
| Автор: | forscience [ Съб Ное 19, 2016 10:17 pm ] | |||||||||
| Заглавие: | Re: Проблем с входовете на PIC16F627A | |||||||||
Продължава да работи по същия начин дори след корекцията на CMCON. От скоро се занимавам с PIC, студент съм специалност КСТ, и още не са ми ясни доста неща. CMCON = 0b111; (Така трябва да изглежда командата нали?) |
||||||||||
| Автор: | ToHu [ Съб Ное 19, 2016 10:38 pm ] |
| Заглавие: | Re: Проблем с входовете на PIC16F627A |
Така, сега като чета явно някъде е дефинирано че RB0 .. RBx sa bitowe, т.е. не е дефиницията в случая, по скоро не чета а гледам пример техен. Като ти гледам кода .. как си го вързл схемно, защото стандартната схема за връзване на бутон е пълъп към + и бутон към маса, в смисъл това е по -изпозлвамото, и в този случай входа ти винаги е 1-ца и става 0 като натиснеш. Другото как са ти свързани диодите, защото пък много често те са с резистор към + о през порта се светват като го правиш 0 ..... п.с. не може да е CMCON защото ако си оставил компаратора включен ще четеш бита внаги 0-ла |
|
| Автор: | veryoldman [ Съб Ное 19, 2016 10:46 pm ] |
| Заглавие: | Re: Проблем с входовете на PIC16F627A |
Как ти изглежда хардуера. Ако с натискане на бутона подаваш "1", това означава, че бутона е включен между входа и "+". Тогава би трябвало да имаш резистор към маса, за да определя нивото при ненатиснат бутон. Обикновено се прави обратното, за да се ползват Pullup резистори, но няма значение. Важното е при ненатиснат бутон да имаш едно устойчиво ниво (в твоя случай може би "0") и при натиснат бутон да имаш друго устойчиво ниво. Покажи по някакъв начин схема. Когато се включи устройството, точно избраните диоди ли светват или всички - т.е. проблемът софтуерен ли е или хардуерен. Промени комбинацията, която искаш да свети, за да си сигурен, че ги пали софтуера, а не грешка по платката/схемата. |
|
| Автор: | forscience [ Съб Ное 19, 2016 10:54 pm ] |
| Заглавие: | Re: Проблем с входовете на PIC16F627A |
Дисплея е с общ катод, а 1-ците ги подавам директно от +VDD през пуш бутон. При смяна на диодите в софтуера се получава желаната комбинация, но отново IF-a се изпълнява все едно бутона е натиснат, а реално не е. Както казах в по-горния си пост, предния примерен код работи върху друга платка, там реално е един бутон и един диод, а тук са 9 бутона и 7 диода. |
|
| Автор: | ToHu [ Съб Ное 19, 2016 11:00 pm ] |
| Заглавие: | Re: Проблем с входовете на PIC16F627A |
А на тия входове имаш ли нещо което да ги държи в ниско ниво, т.е. резистор към маса, оставени висящи ... вече не помня какво връщаха, но на силабс примерно могат да ти върнат и 0 и 1. |
|
| Автор: | forscience [ Съб Ное 19, 2016 11:02 pm ] | |||||||||
| Заглавие: | Re: Проблем с входовете на PIC16F627A | |||||||||
Нищо не ги държи в ниско ниво, свързани са единствено през бутона. Но дори и да трябва да сложа резистори, пак не си обяснявам как при 1 вход и 1 изход работи, а с 9 входа и 7 изхода не. |
||||||||||
| Автор: | veryoldman [ Съб Ное 19, 2016 11:12 pm ] |
| Заглавие: | Re: Проблем с входовете на PIC16F627A |
сложи им резистори, не е коректно да са висящи |
|
| Автор: | forscience [ Съб Ное 19, 2016 11:15 pm ] | |||||||||
| Заглавие: | Re: Проблем с входовете на PIC16F627A | |||||||||
Хардуерно е практически невъзможно. Има ли начин софтуерно да им окажа логическа 0 при липса на 1ца? |
||||||||||
| Автор: | ToHu [ Съб Ное 19, 2016 11:29 pm ] |
| Заглавие: | Re: Проблем с входовете на PIC16F627A |
Не, няма, какво значи хардуерно е невъзможно ? Дали ще разботи е въпрос който зависи от много неща, може да се чете винаги 0, може винаги 1-ца и което е най-лошото може да е произволно, или донякъде свързано с предходно състояние. Нямам спомен как се държаха входовете на PIC когато са висящи, но ри в идеалния случай да са 0, всяко смущение ще ги направи 1-ца. Пробвай да сложиш някакъв резистор за пробата към маса, ако изгасне значи това ти е проблема. |
|
| Автор: | forscience [ Съб Ное 19, 2016 11:44 pm ] | |||||||||
| Заглавие: | Re: Проблем с входовете на PIC16F627A | |||||||||
Да, точно там е проблема. Кода работи както трябва, просто хардуерно трябва да се добавят pullup резистори. Благодаря Ви за помощта. |
||||||||||
| Страница 1 от 2 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|