Отговори на тема  [ 12 мнения ] 
CCS C #pin_select проблем 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Фев 10, 2005 3:25 pm
Мнения: 5677
Местоположение: София
Мнение 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 задават правилните пинове на уартите. Къде да търся проблема?


Чет Мар 11, 2021 2:39 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Сря Мар 22, 2006 3:25 am
Мнения: 6418
Мнение Re: CCS C #pin_select проблем
и тук е същото, нещо бъгливо има
ама ми направи впечатление като сменям спи1, спи2, спи3 винаги ползва пиновете за съответния номер и2ц, чийто пинове не могат да се ремапват


Пет Мар 12, 2021 5:39 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Фев 07, 2012 11:22 pm
Мнения: 3084
Мнение Re: CCS C #pin_select проблем
Moже би в компилатора или по-скоро хедър файловете за чипа - мплаб 5.30 е към 5 годишен вече, май.


Пет Мар 12, 2021 7:10 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Фев 10, 2005 3:25 pm
Мнения: 5677
Местоположение: София
Мнение 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:


Пет Мар 12, 2021 12:41 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Окт 25, 2009 1:48 pm
Мнения: 1073
Мнение Re: CCS C #pin_select проблем
Еди тъп въпрос на кандидат програмист - защо CCS, а не XC32/32++?...


Пет Мар 12, 2021 1:11 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Фев 10, 2005 3:25 pm
Мнения: 5677
Местоположение: София
Мнение Re: CCS C #pin_select проблем
d_jelev написа:
Еди тъп въпрос на кандидат програмист - защо CCS, а не XC32/32++?...

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


Пет Мар 12, 2021 6:46 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Окт 25, 2009 1:48 pm
Мнения: 1073
Мнение Re: CCS C #pin_select проблем
Да, моя грешка, не разчетох добре чипа в началото.


Пет Мар 12, 2021 6:53 pm
Профил
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Вто Окт 25, 2005 10:54 am
Мнения: 896
Мнение Re: CCS C #pin_select проблем
По спомен ЦЦС има девайс едитор тул с който можеш да редактираш даден пик.
Случва се да не са му дефинирали правилно битовете, на мен веднъж ми се наложи да коригирам един пик, не помня дали грешно го бяха дефинирали или липсваха някакви битове из регистрите му...


Пет Мар 12, 2021 8:05 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Фев 10, 2005 3:25 pm
Мнения: 5677
Местоположение: София
Мнение Re: CCS C #pin_select проблем
Такааа... за да не настъпва и друг моите мотики:
Оказа се, че getenv() с параметър "SPIх_CLK", "SPIх_DI" или "SPIх_DO" не работи, докато с "UARTx_RX" и "UARTx_TX" работи перфектно. #pin_select също работи, а проверката на пиновете на ремапнатата периферия става с четене на регистрите RPINRх и RPORх.


Вто Мар 16, 2021 1:33 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30684
Местоположение: София
Мнение Re: CCS C #pin_select проблем
Няма да е за първи път да не им работят подобни функции или да има грешка в хедъра файла за процесора. Те и тези които работят не винаги са написани читаво, имам някакви неприятни спомени от функция за oneWire.


Чет Мар 18, 2021 4:24 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Фев 10, 2005 3:25 pm
Мнения: 5677
Местоположение: София
Мнение 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:


Чет Мар 18, 2021 5:48 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30684
Местоположение: София
Мнение Re: CCS C #pin_select проблем
Неприятно да ...


Пет Мар 19, 2021 3:43 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 12 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 2 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни