06.03.2013, 23:37
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Интересно , а кто нибудь в курсе , что в CCS перегрузка функций реализована ??
Блин , и самое хреновое, что буржуи ее юзают...
Сообщение от Eddy71
|
Я про #use fixed_io, fast_io, standard_io..
|
Вот доиграетесь вы со встроенными фичами.
Только что сейчас нарвался ...
__________________
Осторожно , злой кот
Последний раз редактировалось dosikus; 06.03.2013 в 23:40.
|
|
|
|
07.03.2013, 00:29
|
|
Почётный гражданин KAZUS.RU
Регистрация: 22.02.2008
Адрес: Ukraine, рядом с Полтавой
Сообщений: 9,792
Сказал спасибо: 5,564
Сказали Спасибо 25,384 раз(а) в 5,700 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Насчет перегрузки не знаю, а про #use_хххх в мануале хорошо всё разжевано. В .lst файлах всё очень наглядно видно.
|
|
|
|
07.03.2013, 08:05
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Сообщение от Eddy71
|
а про #use_хххх в мануале хорошо всё разжевано.
|
Дело не в отсутствии информации , дело в том что это уводит от стандарта ...
А перегрузка, пожалуйте :
Код:
|
int RF24_comm(int comm) {
int rv; //rv=return value(SPI nRF24 status read value)
RF24_select();
rv=RF24_xfer(comm); //RF24 Write address/command(see RF24_addr addresses list tabble in .h file)
rv=spi_read2(); //It´s necessary due to spi_xfer read bug
RF24_unselect();
return rv; //Return last read value
}
//
int RF24_comm(int comm, int comm1) {
int rv; //rv=return value(SPI nRF24 status read value)
RF24_select();
RF24_xfer(comm); //RF24 Write address/command(see RF24_addr addresses list tabble in .h file)
rv=RF24_xfer(comm1); //Write config.value or command
rv=spi_read2(); //It´s necessary due to spi_xfer read bug
RF24_unselect();
return rv; //Return last read value
}
//
int RF24_comm(int comm, int32 comm1, int commDS) { //commDS=datasize(1 to 32 bits)
int rv; //rv=return value(SPI nRF24 status read value)
RF24_select();
RF24_xfer(comm); //RF24 Write address/command(see RF24_addr addresses list tabble in .h file)
rv=spi_xfer(RF24_SPI, comm1, commDS);//Write config.value or command(1 to 32 bits of data)___I CANNOT USE RF24_xfer() ALIAS BECAUSE IT NOT ACCEPTS MORE THAN 1 PARAMETER
rv=spi_read2(); //It´s necessary due to spi_xfer read bug
RF24_unselect();
return rv; //Return last read value |
__________________
Осторожно , злой кот
|
|
|
|
07.03.2013, 11:57
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,531
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Во, как раз в тему Использовал самодельный драйвер, теперь решил поковыряться с аппаратным SPI (правда, это только у мастера возможно, все остальные программные, да и МК на разных частотах... от 4 до 12МГц).
spi_read и spi_write работают только с железным SPI? (ну, во всяком случае, у меня так получается). Тогда смысл в использовании xfer? И что за баг там?
И вот еще никак не могу понять с baud. Можно любое число ставить? Меньше 3331 не дает.
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
Последний раз редактировалось DK; 07.03.2013 в 12:05.
|
|
|
|
31.03.2013, 09:39
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,531
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Народ, объясните тупому такую штуку:
Есть структура.
Цитата:
|
typedef struct udp_packet {
uint16_t from_port;
uint16_t to_port;
uint16_t len;
uint16_t cksum;
uint8_t data[];
} udp_packet_t;
|
Походу, в программе используется выражение типа sizeof(udp_packet_t)
Оно равно 9
Ну не могу я понять. Ведь поле data может иметь любую длину? Т.е. если записываю в него 10 байт, то размер структуры должен получится 8 + 10 байт? А получается 19...
Дальше - хуже... При расчете длины пакета IP и его контрольной суммы опять всплывает лишний байт (на КС данных UDP можно плюнуть, оно не важно)...
Ну вообще-то это стек под АВР был сделан (ув. тов. Lifelover-ром). Там вроде все нормально заводится. А я это пытаюсь в ПИК18 запихнуть.
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
|
|
|
|
31.03.2013, 10:18
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
DK, Не все компиляторы адекватно работают с динамическими массивами в качестве члена структуры.
Под что писано под AVR ?
IAR вроде так же не переваривает подобное.
__________________
Осторожно , злой кот
|
|
|
|
31.03.2013, 11:45
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,531
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Сообщение от dosikus
|
писано под AVR ?
|
Вроде. Или AVR Studio 4. Кто-то без проблем портировал под STM8
Ну да там все грамотно сделано. Только в последних статьях пошли навороты вроде memcpy_P и тому подобного. Как я понимаю, библиотека специфическая компилера для АВР pgmspace.h
И еще CCS не различает маленькие и большие буквы... Тоже достает, когда константы люди в капсе обзывают, а потом с тем же именем переменную или функцию заводят...
Ну во всяком случае, с UDP все получилось (с учетом коррекций длины), а вот с TCP никак пока. Похоже там тоже надо корректировать длину...
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
Последний раз редактировалось DK; 31.03.2013 в 11:47.
|
|
|
|
02.04.2013, 14:31
|
|
Частый гость
Регистрация: 01.03.2008
Сообщений: 37
Сказал спасибо: 3
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Сообщение от DK
|
И еще CCS не различает маленькие и большие буквы... Тоже достает, когда константы люди в капсе обзывают, а потом с тем же именем переменную или функцию заводят...
|
Надо указать директиву
и все будет
|
|
|
Сказали "Спасибо" xDriver
|
|
|
02.04.2013, 17:06
|
|
Прописка
Регистрация: 10.04.2007
Сообщений: 180
Сказал спасибо: 7
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Решил тут попробовать CCS, до этого пользовался только HT и XC8.
И возник у меня вопрос: можно ли не пользоваться этими их супер-пупер функциями и писать прямо в регистры как в нормальных компиляторах?
|
|
|
|
02.04.2013, 18:35
|
|
Частый гость
Регистрация: 01.03.2008
Сообщений: 37
Сказал спасибо: 3
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
да сколько угодно
Код:
|
#include ‹18F45J50.h›
#device adc=8
#case
#BYTE TCLKCON = 0xF52
....
....
void main()
{
TCLKCON = 0b00000010;
....
.... |
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 16:45.
|
|