| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Вътрешен пулъп http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=5923 |
Страница 1 от 1 |
| Автор: | Реконструктор [ Пон Юли 07, 2008 10:01 am ] |
| Заглавие: | Вътрешен пулъп |
Вече два дена се боря с този проблем и или нещо не разбирам, или не правя нещо както трябва. Закачил съм на един от пиновете на един от портовете бутон към маса (става въпрос за AVR, естествено). Искам да ползвам вътрешния пулъп на този пин. Според схемата, този резистор е вързан през транзистор, т.е. когато транзистора е отпушен би трябвало да имам лог. 1 при четене на PINx регистъра. Според документацията, транзистора се отпушва, когато пинът е конфигуриран като вход (съответния бит в DDRx е 0) и запишеш лог. 1 в PORTx. Допълнително, в SFIOR трябва PUD бита да е 0. Май е 0 по подразбиране, но аз за всеки случай си го свалям сам. И като го направя всичко това, чета някви случайни неща от PINx и натискането на бутона няма ефект. Според документацията, всеки пин на всеки порт има пулъп, който е от 20 до 50k. Значи или нещо пропускам, или функцията на тоя резистор е изцяло друга. |
|
| Автор: | Wise [ Пон Юли 07, 2008 11:02 am ] |
| Заглавие: | |
Не знам кой точно чип ползваш, но не би трябвало да има проблем. (MCUCR е регистъра с PUD бита в тези, които аз ползвам). Точно така би трябвало да се държи - както го правиш. Прегледай си кода за евентуални грешки - примерно да не пишеш в PINx - защото там боза става... Хардуерно - ако са много дълги жиците може да има проблем. За бутончета на платката трябва да работи! //предполагам, че не ползваш алтернативна функция на този порт (UART...или нещо такова) |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|