| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Главоболия с ПИК http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=4685 |
Страница 1 от 1 |
| Автор: | MidNighT_SpiRiT [ Чет Авг 23, 2007 12:03 pm ] | |||||||||
| Заглавие: | Главоболия с ПИК | |||||||||
Здравейте, проблемът е следния: Като се изпълни следния код вместо да бъдат в "1" RTS и PTT, "светва" само PTT. Ако него не го установявам, то RTS си седи в "1", както трябва да бъде. Не мога да разбера къде е грешката, преди това уж изключвам компараторите? Чипът е PIC16F628A.
|
||||||||||
| Автор: | setoy [ Чет Авг 23, 2007 12:32 pm ] |
| Заглавие: | |
пробвай вместо bsf RTS bsf PTT movlw 0bxxxxxxx iorwf porta,1 Проблема мяза на прословутата RMW (read-modify-write) особеност на 16-та серия |
|
| Автор: | zmej [ Пет Авг 24, 2007 12:11 pm ] |
| Заглавие: | |
Не знам как седи въпроса с F628, но ако имаш аналогови входове - инициализирай ADCON0/1 - по дифолт висят на аналогови, вместо на цифрови. Получавал съм твоя 'ефект' на 12F675 точно от тая работа - вдигаш един пин - ок, вдигаш втория и първия се сваля сам... |
|
| Автор: | MidNighT_SpiRiT [ Пет Авг 24, 2007 1:24 pm ] |
| Заглавие: | |
Оправи се проблемът! При този контролер на порт А аналоговата периферия е само компаратори. Тях ги изключвам, обаче това явно не е решение на проблема. Прочетох една статия от микрочип, където обясняват този проблем, а по-точно операциите четене -промяна -запис, както каза setoy. Там пишеше, че когато следват непосредствено инструкции от вида bsf PORTA,3 bsf PORTA,6 при втората може да се нулира извод 3, защото има някакъв капацитет, който започва да се зарежда след първата интрукция, а при втората се прочита порта, модифицира се и се записва, обаче, след като извод 3 не е достигнал още високо състояние ще бъде прочетен като 0 и след това така ще бъде записан. При мен специално не беше точно капацитетът причината, защото сложих закъснение от половин секунда и положението си беше същото. Просто е най-добре като ще се работи с тоя порт А да се държи състоянието му в една променлива и като се прави модификация да се пипат нейните битове и после да се записва цялата на порта. Тогава изчезва този проблем. Най-добре е ако може да се ползват като входове изводите на порт А. |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|