Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

CCS C #pin_select проблем
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=17813
Страница 1 от 1

Автор:  Desert Leo [ Чет Мар 11, 2021 2:39 pm ]
Заглавие:  CCS C #pin_select проблем

MPLAB X IDE v5.30
CCS C v5.061
PIC24FJ1024GA606
Код:
#pin_select SCK1OUT = PIN_G7
#pin_select SDI1 = PIN_G6
#pin_select SDO1 = PIN_G8
#use spi(MASTER, SPI1, MODE = 0, BAUD = 1000000)

getenv("SPI1_CLK") връща 14050 = PIN_G2
getenv("SPI1_DI") връща 14501 = PIN_G3
getenv("SPI1_DO") връща 14050 = PIN_G2
В същата програма #pin_select и #use rs232 задават правилните пинове на уартите. Къде да търся проблема?

Автор:  nik [ Пет Мар 12, 2021 5:39 am ]
Заглавие:  Re: CCS C #pin_select проблем

и тук е същото, нещо бъгливо има
ама ми направи впечатление като сменям спи1, спи2, спи3 винаги ползва пиновете за съответния номер и2ц, чийто пинове не могат да се ремапват

Автор:  stefan63 [ Пет Мар 12, 2021 7:10 am ]
Заглавие:  Re: CCS C #pin_select проблем

Moже би в компилатора или по-скоро хедър файловете за чипа - мплаб 5.30 е към 5 годишен вече, май.

Автор:  Desert Leo [ Пет Мар 12, 2021 12:41 pm ]
Заглавие:  Re: CCS C #pin_select проблем

Пробвах с MPLAB X IDE v5.45 (последната) и CCS C v5.091 и 5.101 - все същото. Някъде другаде е проблема...
Функцията pin_select също не работи. Опитвам да отключа ремапването на периферията (spi1) в OSCCON, за да направя съответния запис в RPINR и RPOR регистрите, но отключването (запис на 0x46 и след това на 0x57 в младшия байт на OSCCON) не става. Блокирах... :evil:

Автор:  d_jelev [ Пет Мар 12, 2021 1:11 pm ]
Заглавие:  Re: CCS C #pin_select проблем

Еди тъп въпрос на кандидат програмист - защо CCS, а не XC32/32++?...

Автор:  Desert Leo [ Пет Мар 12, 2021 6:46 pm ]
Заглавие:  Re: CCS C #pin_select проблем

d_jelev написа:
Еди тъп въпрос на кандидат програмист - защо CCS, а не XC32/32++?...

Вероятно питаш защо не ХС16... Ами по навик. Едно време нямаше ХС16, а нямам отзиви за него.

Автор:  d_jelev [ Пет Мар 12, 2021 6:53 pm ]
Заглавие:  Re: CCS C #pin_select проблем

Да, моя грешка, не разчетох добре чипа в началото.

Автор:  t_i_t_o [ Пет Мар 12, 2021 8:05 pm ]
Заглавие:  Re: CCS C #pin_select проблем

По спомен ЦЦС има девайс едитор тул с който можеш да редактираш даден пик.
Случва се да не са му дефинирали правилно битовете, на мен веднъж ми се наложи да коригирам един пик, не помня дали грешно го бяха дефинирали или липсваха някакви битове из регистрите му...

Автор:  Desert Leo [ Вто Мар 16, 2021 1:33 pm ]
Заглавие:  Re: CCS C #pin_select проблем

Такааа... за да не настъпва и друг моите мотики:
Оказа се, че getenv() с параметър "SPIх_CLK", "SPIх_DI" или "SPIх_DO" не работи, докато с "UARTx_RX" и "UARTx_TX" работи перфектно. #pin_select също работи, а проверката на пиновете на ремапнатата периферия става с четене на регистрите RPINRх и RPORх.

Автор:  ToHu [ Чет Мар 18, 2021 4:24 pm ]
Заглавие:  Re: CCS C #pin_select проблем

Няма да е за първи път да не им работят подобни функции или да има грешка в хедъра файла за процесора. Те и тези които работят не винаги са написани читаво, имам някакви неприятни спомени от функция за oneWire.

Автор:  Desert Leo [ Чет Мар 18, 2021 5:48 pm ]
Заглавие:  Re: CCS C #pin_select проблем

В случая има и грешка в описаниета на компилатора. Имената на пиновете са дадени като SPIx_DI, SPIxDO и SPIxCLK, а трябва да бъдат SPIx_DI, SPIx_DO и SPIx_CLK.
Объркването дойде и от това, че въпросните PIN_G2 и PIN_G3 са съответно I2C1_SCL и I2C1_SDA. В този проект използвам SCL1, 2 и 3 и SPI1 едновременно и проблемът видимо беше, че I2C1 от време на време работи странно дори при SLOW, а с I2C2 и 3 няма проблеми и при FAST. Още по странното е, че слейвовете на I2C2 и 3 са на отделни платки свързани с не съвсем къси жици, докато всичко закачено на I2C1 е до проца. Под работи странно да се разбира, че винаги i2c_write(...) връща ACK, докато понякога i2c_read(...) зависва. SPI1 пък въобще не работи. Всичко това ме заблуди, че I2C1 и SPI1 се "бият" за тези два пина и задълбах в проверки на кода и настройките, което ми загуби доста време да търся муха в тъмна стая, а всъщност мухата не е в стаята :wink:. Така дойде времето на скопа, който показа, че проца пуска кавото трябва по SPI към слейва, слейва отговаря коректно, но проца не вижда отговора. Така дойде ред на поялника и се видя, че другарите от Унител :evil: са ми спретнали изненада - след презапояване на проца всичко тръгна. Не се наемам да преброя колко пъти съм споменавал близки роднини от женски, че и от мъжки пол на хората от МикроЧеп, CCS и Унител. :evil:

Автор:  ToHu [ Пет Мар 19, 2021 3:43 pm ]
Заглавие:  Re: CCS C #pin_select проблем

Неприятно да ...

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/