| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| atmega16 PORTC http://mcu-bg.com/mcu_site/viewtopic.php?f=2&t=13473 |
Страница 1 от 1 |
| Автор: | Реконструктор [ Нед Яну 04, 2015 1:20 pm ] |
| Заглавие: | atmega16 PORTC |
Може ли половината да се ползва като изход, и половината като вход? Има следната опитна постановка: DDRC = 0xF0; Горния полубайт са изходи, долния - входове. Между изходите и входовете има бутони. Така, че като направя PORTC = 0xF0; очаквам като прочета: test = PINC & 0x0F; да имам стойности 1, 2, 4 или 8 в зависимост от кой бутон е натиснат. На практика, обаче, коректно получавам единствено 1, за останалите 3 бутона получавам 0x0E, защото при натискане на кой да е от трите, ми светват и трите пина едновременно. Проверих го и с мултицет и наистина, електрически се получава точно това. Не мога да разбера защо се получава така, промяната на нивото на единия пин влече промяна и на другите 2. |
|
| Автор: | Nikola Kirov [ Нед Яну 04, 2015 1:50 pm ] |
| Заглавие: | Re: atmega16 PORTC |
А провери ли дали нямаш късо между тия три входа? |
|
| Автор: | Реконструктор [ Нед Яну 04, 2015 2:10 pm ] | |||||||||
| Заглавие: | Re: atmega16 PORTC | |||||||||
Разбира се, просвирих ги и няма. |
||||||||||
| Автор: | Cekins [ Нед Яну 04, 2015 2:16 pm ] |
| Заглавие: | Re: atmega16 PORTC |
пулъп / пулдаун ? Как очакваш бутона да ти пусне логическа 0 като не е натиснат - реално той е в "тристейт" изход - входа може да отиде където си иска... |
|
| Автор: | Реконструктор [ Нед Яну 04, 2015 2:37 pm ] |
| Заглавие: | Re: atmega16 PORTC |
Ами с включени вътрешни пулъпове се държи още по-странно. |
|
| Автор: | itso.t [ Нед Яну 04, 2015 2:45 pm ] |
| Заглавие: | Re: atmega16 PORTC |
Ако на същите пинове има друга аналогова или цифрова периферия, тя конфигурирана ли е? |
|
| Автор: | Nikola Kirov [ Нед Яну 04, 2015 2:49 pm ] |
| Заглавие: | Re: atmega16 PORTC |
Колегата правилно ти е писал за pull down. В този вариант трябва да имаш на всеки вход резистор към маса. От последните ти обяснения става ясно че нямаш. Ако искаш без резистори трябва да инвертираш логиката на работа. Изходите да дават нула а на входовете да активираш pullup. |
|
| Автор: | Реконструктор [ Нед Яну 04, 2015 3:00 pm ] |
| Заглавие: | Re: atmega16 PORTC |
В крайна сметка смених чипа и се оправи. Явно докато съм си играл е прицъркала някоя искра и е размазала всичко. |
|
| Автор: | Nikola Kirov [ Нед Яну 04, 2015 3:07 pm ] |
| Заглавие: | Re: atmega16 PORTC |
И как става работата без pulldown? |
|
| Автор: | Реконструктор [ Нед Яну 04, 2015 10:51 pm ] |
| Заглавие: | Re: atmega16 PORTC |
Ми принципно няма проблем, но го оставих така с вътрешния пулъп, щото е наистина по-сигурно. |
|
| Автор: | marcuka68 [ Чет Яну 08, 2015 5:22 pm ] |
| Заглавие: | Re: atmega16 PORTC |
Имаше особеност при АВР, когато се пише PORTx, е необходим NOP, ако в следващата инструкция ще се чете PINx. Описано е в раздел "Reading the Pin Value", струва ми се. |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|