roboforum.ru

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


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

Все здесь

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

Сообщение Romikgy » 05 июл 2011, 22:08

прочитал )) первая ссылка в тему, остальные две ... так....
наличие ошибочных срабатываний есть , но на них даже в этих постах никто не жаловался сильно .... ведь все применяют коды )))
так же не понятно как применить фир для устранения этой проблемы?))))
так что пока не убедил ))) пример не убедительный для использования однобитного сигнала ((( так что сорри ))
die Wahrheit ist irgendwo da draußen
Аватара пользователя
Romikgy
 
Сообщения: 750
Зарегистрирован: 15 ноя 2009, 13:37
Откуда: Porto Franco "Odessa"

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

Сообщение Dmitry__ » 06 июл 2011, 01:25

ну, я бы на твоем месте тоже не признался...
:beer:
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

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

Сообщение Romikgy » 06 июл 2011, 10:07

дык не в чем :beer:
die Wahrheit ist irgendwo da draußen
Аватара пользователя
Romikgy
 
Сообщения: 750
Зарегистрирован: 15 ноя 2009, 13:37
Откуда: Porto Franco "Odessa"

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)?
AVRus
 
Сообщения: 41
Зарегистрирован: 03 фев 2011, 03:23
Откуда: Новгород

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

Сообщение dccharacter » 07 июл 2011, 11:46

компилятор какой?
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

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

Сообщение AVRus » 07 июл 2011, 14:15

CCS PCWHD :oops:
AVRus
 
Сообщения: 41
Зарегистрирован: 03 фев 2011, 03:23
Откуда: Новгород

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

Сообщение AVRus » 14 июл 2011, 09:53

система прочитал - изменил - записал = выедает мозг, особенно когда нужно сделать монтажное и !
может кто нибуть объяснит тупице почему output_c(0x00) сбрасывает tris в нули ?
AVRus
 
Сообщения: 41
Зарегистрирован: 03 фев 2011, 03:23
Откуда: Новгород

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
Аватара пользователя
AndreiSk
 
Сообщения: 2639
Зарегистрирован: 23 апр 2009, 17:03
Откуда: Москва, Самара
прог. языки: C#

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 раз.
AVRus
 
Сообщения: 41
Зарегистрирован: 03 фев 2011, 03:23
Откуда: Новгород

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

Сообщение dccharacter » 14 июл 2011, 12:29

А зачем самостоятельно дергать i2c ногами??? Один раз конфигурируются ноги, включается МССПи, дальше железо само всем дергает
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

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

Сообщение AVRus » 14 июл 2011, 12:39

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

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
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

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

Сообщение Dmitry__ » 14 июл 2011, 12:55

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

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

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, щас пытаюсь их минимизировать
AVRus
 
Сообщения: 41
Зарегистрирован: 03 фев 2011, 03:23
Откуда: Новгород

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

Сообщение Dmitry__ » 14 июл 2011, 14:19

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

Добавлено спустя 2 минуты 8 секунд:
можно завести теневой регистр выходных значений порта, там все далать, а потом выводить в порт
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Пред.След.

Вернуться в Свободное общение

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2