|
Виж темите без отговор | Виж активните теми
Дата и час: Пон Юли 27, 2026 7:45 pm
Проблеми със състоянието на PORTD при PIC16F874A
| Автор |
Съобщение |
|
Ugeen
Ранг: Новодошъл
Регистриран на: Пон Яну 16, 2006 5:20 pm Мнения: 122 Местоположение: гр. Горна Оряховица
|
Момчета,ползвах други начин за промяна състоянието на битовете на порта и всичко се оправи.Явно това е наистина проблем на тъпите инструкции за работа с отделен бит от порта.Истината се оказа друга.Трябва да се ползват други инструкции с логическо умножение,а С-то ги генерира когато се напише така. PORTD&=(1<<2);,а не така
PORTD.F2=1; или PORTD&=~(1<<2); а не PORTD.F2=0;Благодаря ви за мненията,които доста ми помогнаха да се справя с проблема.
|
| Пет Юни 02, 2006 8:29 am |
|
 |
|
the_real_maniac
Ранг: Почетен член
Регистриран на: Пет Авг 19, 2005 11:38 am Мнения: 978 Местоположение: Europe -> BG
|
Аз не ти разбрах това изречение
"Трябва да се ползват други инструкции с логическо умножение,а С-то ги генерира когато се напише така. PORTD&=(1<<2);,а не така PORTD.F2=1; или PORTD&=~(1<<2); а не PORTD.F2=0;"
Последно по кой метод указваш състоянието на крак от PORTD ?
|
| Пет Юни 02, 2006 12:57 pm |
|
 |
|
Ugeen
Ранг: Новодошъл
Регистриран на: Пон Яну 16, 2006 5:20 pm Мнения: 122 Местоположение: гр. Горна Оряховица
|
Искам да кажа ,че правилното е да се пише така PORTD&=~(1<<2); Защото порта ще се умножи с 1111 1011 и бит 2 ще стане 0, вместо да напиша PORTD.F2=0;,което ще генерира
bcf PORTD,2.
|
| Пет Юни 02, 2006 3:12 pm |
|
 |
|
setoy
Ранг: Почетен член
Регистриран на: Пет Фев 17, 2006 9:17 am Мнения: 765 Местоположение: Стара Загора
|
А защо не направо
#define bcf_portd.2 PORTD&=0x11111011
#define bsf_portd.2 PORTD|=0x00000100
За чий ти е това превъртане и тази инверсия?;) Не че не става и така, ама не е много пригледно. То не знам в миктоС дефине-то как е, той "малко" странен един такъв 
|
| Пет Юни 02, 2006 3:57 pm |
|
 |
|
Ugeen
Ранг: Новодошъл
Регистриран на: Пон Яну 16, 2006 5:20 pm Мнения: 122 Местоположение: гр. Горна Оряховица
|
Съгласен съм с идеята,но точно това му е кофтито ,на това Mikro C ,че не може да се правят такива работи.Аз даже им писах за това и то 2 пъти,но те се правят на ударени.(Исках да дефинирам бит от порт да се казва някак си с име ,но не иска да го възприема)Това define e много ограничено и не може да се сравнява със същото на други С компилатори.Единственото, харесвам е, че има доста библиотеки .
|
| Пет Юни 02, 2006 6:32 pm |
|
 |
|
s_stoqnov
Ранг: Минаващ
Регистриран на: Съб Окт 08, 2005 7:10 pm Мнения: 19 Местоположение: Стара Загора (София)
|
Ето какво пише в datasheet-a.
|
| Съб Юни 10, 2006 6:02 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 4 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|