roboforum.ru

Технический форум по робототехнике.

Переход с АVR на PIC, перешедший в холивар AVR vs PIC =)

Ответить

Re: Переход с АVR на PIC, перешедший в холивар AVR vs PIC =)

AVRus » 14 июл 2011, 15:46

Dmitry__ писал(а):надо перед переключением sda на выход, записать в его выходную защелку нужное значение

Добавлено спустя 2 минуты 8 секунд:
можно завести теневой регистр выходных значений порта, там все далать, а потом выводить в порт

я в самом начале прописываю нули в PORTC и потом единицы в TRIS, после этого PORTC значений не меняет(ну только управляющие ножки, не SDA, SCL), а меняются только TRIS для ножек SDA,SCL!

Проблема в том что комманды изменения логического уровня output_c(), output_bit() меняют TRIS регистр управляющий состоянием вход\выход ножек !

Re: Переход с АVR на PIC, перешедший в холивар AVR vs PIC =)

Dmitry__ » 14 июл 2011, 15:59

когда sda настроен на вход, и меняешь состояние выходов, уровень с входа sda записывается в выходную зашелку :shock:
я же тебе обьяснял...

Добавлено спустя 9 минут 23 секунды:
portc.0 - sda , выход
portc.1 - led , выход

sda =0
led =0

переключаешь sda на вход
делаешь установку бита led, и в этот момент уровень на входе sda запишется в выходную защелку sda, если там была единица (а, скорее всего так из-за подтяжки к +5v) эта единица будет в выходной защелке sda
и во время перенастройки sda на выход, там будет "1"

вот перед перекл. sda na wyxod надо записать ноль в sda

Re: Переход с АVR на PIC, перешедший в холивар AVR vs PIC =)

dccharacter » 14 июл 2011, 16:01

Блина, посмотри презу, на которую я дал ссылку выше!
если standard_io, то функции аутпута/инпута меняют трис
если fast_io - компилятор не меняет трис
fixed_io - его вообще, похоже, никак поменять нельзя

Re: Переход с АVR на PIC, перешедший в холивар AVR vs PIC =)

AVRus » 14 июл 2011, 17:47

dccharacter писал(а):Блина, посмотри презу, на которую я дал ссылку выше!
если standard_io, то функции аутпута/инпута меняют трис
если fast_io - компилятор не меняет трис
fixed_io - его вообще, похоже, никак поменять нельзя

Понятно, там просто написано Compiler does not alter TRIS - я почемуто подумал что в этом режиме компилятор вообще неможет менять TRIS :oops:


Rambler\'s Top100 Mail.ru counter