roboforum.ru

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

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

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

Romikgy » 05 июл 2011, 22:08

прочитал )) первая ссылка в тему, остальные две ... так....
наличие ошибочных срабатываний есть , но на них даже в этих постах никто не жаловался сильно .... ведь все применяют коды )))
так же не понятно как применить фир для устранения этой проблемы?))))
так что пока не убедил ))) пример не убедительный для использования однобитного сигнала ((( так что сорри ))

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

Dmitry__ » 06 июл 2011, 01:25

ну, я бы на твоем месте тоже не признался...
:beer:

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

Romikgy » 06 июл 2011, 10:07

дык не в чем :beer:

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

AVRus » 07 июл 2011, 11:21

Не мог бы ктонибудь объяснить мне работу с #USE STANDARD_IO(port), #USE FAST_IO(port), #USE FIXED_IO ?
Я не понимаю стандартная_ио как определит входы\выходы ?
В фаст_ио как я понял перед любым обрашением к порту нужно сказать вход он или выход так ?
А фиксед_ио строго говорит какие пины будут выходами #use fixed_io(a_outputs=PIN_A2, PIN_A3) типа так ?

1)Могу ли я при стандарт_ио изменять любой пин командами output_high(pin) и оutput_low(pin)?
2)Как я понял input(pin) меняет пин на вход и смотрит его значение, а input_state(pin) смотрит значение не меняя пин?

Если можно то приведите примеры кода с аналогие для АВР :)

p.s. и вообще в чем отличия output_high(pin) и output_bit(pin,1)?

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

dccharacter » 07 июл 2011, 11:46

компилятор какой?

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

AVRus » 07 июл 2011, 14:15

CCS PCWHD :oops:

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

AVRus » 14 июл 2011, 09:53

система прочитал - изменил - записал = выедает мозг, особенно когда нужно сделать монтажное и !
может кто нибуть объяснит тупице почему output_c(0x00) сбрасывает tris в нули ?

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

AndreiSk » 14 июл 2011, 11:23

я не большой спец по ccs c, но, думаю надо почитать help
или их форум http://www.ccsinfo.com/forum/index.php

Сам делаю так: никакие #use для портов не определяю,
а при инициализации
Код: Выделить всёРазвернуть
          // 76543210 1=input, 0=output
set_tris_a(0b11111111); // all input
set_tris_c(0b10111110);   // C6 = TX/UART, C0 = TX/SABERTOOTH


Для выставления пинов
а) если точно известно как выставить
output_high(PIN_C3);
output_low(PIN_C3);
б) иначе: output_bit(SERVO_C1_TX, v);
Для чтения:
data = (BYTE)input(PIN_C3);

А вообще, CCS C не могут разродиться компилятором для PIC32,
это бесит :x

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

AVRus » 14 июл 2011, 12:28

Для выставления пинов
а) если точно известно как выставить
output_high(PIN_C3);
output_low(PIN_C3);


Допустим у нас i2c шина SDA,SCL подтянуты на 5В через резюки

Код: Выделить всёРазвернуть
SDA PIN_C5
SCL PIN_C4
set_tris_c(0x30); //SDA,SCL - входы
output_low(SDA); // 0b011111
output_low(SCL); // 0b101111


тут уже загвоздочка получается
но допустим сделаем так

Код: Выделить всёРазвернуть
 set_tris_c(0x00);
output_low(SDA);
output_low(SCL);
set_tris_c(0x30);


А если еще и на C2,C1 ножки нада управляющий сигнал подавать, то анархия получается т.к. сбивается tris а это создает помехи на i2c :(

p.s. насколько опасно делать ноги SDA,SCL выходами и давать на них сигналы 1,0 для работы с одним i2c устройством ?
Последний раз редактировалось AVRus 14 июл 2011, 12:31, всего редактировалось 1 раз.

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

dccharacter » 14 июл 2011, 12:29

А зачем самостоятельно дергать i2c ногами??? Один раз конфигурируются ноги, включается МССПи, дальше железо само всем дергает

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

AVRus » 14 июл 2011, 12:39

Камушек без поддержки i2c, приходится самому софтовый делать...сначала сделал с самостоятельным дерганием ножек как выходов - все заработало, в протеусе!
Потом прочитал что дергать нужно только tris'ом при 0 на SDA и SCL, и тут появились проблемы :(

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

dccharacter » 14 июл 2011, 12:41

http://wiki.pic24.ru/doku.php/doc/mchp_ppt/intro
курс 1222
слайды 100-101
Ноги могут быть настроены по-любому. На предыдущих слайдах поясняется вся эта катавасия с трисами/инпутами

Добавлено спустя 37 секунд:
Если нет хардового, то, по-моему в ccs-шных примерах есть библиотека софтового i2c

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

Dmitry__ » 14 июл 2011, 12:55

AVRus писал(а):Потом прочитал что дергать нужно только tris'ом при 0 на SDA и SCL, и тут появились проблемы

может не в тему, но при управлении портами в пик битовыми операциями можно получить глюк, т.к. битовые операции делаются через "чтение - модификация- запись". Например установил 0-й бит, а 1-й бит настроен на вход,
пикина прочитает все значение порта, установит 0-й бит и запишет обратно. При этом значение со входа 1-го бита запишется в выходную защелку этого же бита, и если 1-й бит настроить на выход, то на выходе будет тот уровень, который был считан раньше. Как раз это касается софтовых I2C, т.к. там надо sda все время переключать со входа на выход. В общем правило: перед конфигурацией бита на выход, запиши в ее выходную защелку нужное значение

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

AVRus » 14 июл 2011, 13:24

dccharacter ccs советует только EX_SLAVE.C а там не софтовый, есть еще DS1621.C там не софтовый, куча еепромов тож не софтовый :(
Слайды по моему описание функций которые есть и в хэлпе..
Если подать высокий уровень с МК на выход ножки SDA,SCL это может навредить устройствам или МК разьве нет?
Dmitry__ - в тему, я переделал библиотеку на управление только tris при 0 на SDA,SCL, но проблема в том что у меня на порту с i2c еще 2 ноги которыми нада управлять, и когда я пытаюсь ими управлять через output_low(), output_c(), output_pin() то почемуто сбрасывается Tris а это влечет за собой помехи на i2c, щас пытаюсь их минимизировать

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

Dmitry__ » 14 июл 2011, 14:19

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

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


cron
Rambler\'s Top100 Mail.ru counter