05.04.2013, 09:51
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Сообщение от DK
|
Где-то накосячил. Перестало собираться.
|
Конфиг прописан в двух местах , если в хэдере, то хэдер не правильно оформлен...
__________________
Осторожно , злой кот
|
|
|
|
05.04.2013, 10:13
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,530
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
На флаги пришлось маску tcp-›data_offset &= 0xF0; Иначе лишнюю 1 выставляет. Впрочем, ничего от этого не меняется.
Цитата:
|
40 658.119636000 192.168.121.101 192.168.121.223 TCP 66 11800 › 14444 [SYN] Seq=0 Win=8192 Len=0 MSS=1460 WS=256 SACK_PERM=1
41 658.129711000 192.168.121.223 192.168.121.101 TCP 60 14444 › 11800 [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=448
42 661.110100000 192.168.121.101 192.168.121.223 TCP 66 11800 › 14444 [SYN] Seq=0 Win=8192 Len=0 MSS=1460 WS=256 SACK_PERM=1
|
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
|
|
|
|
05.04.2013, 12:51
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,530
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
микрочиповский стек завелся. Но прожорливый он...
Буду лишнее из него выкидывать.
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
|
|
|
|
10.04.2013, 12:21
|
|
Временная регистрация
Регистрация: 04.04.2008
Сообщений: 49
Сказал спасибо: 29
Сказали Спасибо 10 раз(а) в 8 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Хочу изменить стиль шрифта ставлю на ключевые слова типа bold- типа полужирный текст, изменяет, но после того как закроешь проект и открываю заново ключевые слова опять становятся обычными, не сохраняет почему то этот стиль, все остальное сохраняет. Мелочь а не приятно. Просто пишу паралельно на кейле, хочется как то однотипно, не хочется кейл подстраивать под ccs. Кто знает как сделать чтоб сохраняло??
|
|
|
|
01.05.2013, 09:15
|
|
Гражданин KAZUS.RU
Регистрация: 06.08.2006
Сообщений: 694
Сказал спасибо: 24
Сказали Спасибо 38 раз(а) в 31 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Привет форумчане всех с праздником солидарности трудящихся. У меня такой вопрос. Камень PIC24HJ128GP506. Пытаюсь запустить передачу данных по УАРТу используя модуль ДМА. Предварительно проверил работу УАРТа через команду putc() все прекрасно работает. Но как только пытаюсь выплюнуть через ДМА - линия молчит.
Цитата:
|
setup_dma(2, DMA_OUT_UART1,DMA_BYTE); //НАСТРАИВАЕМ МОДУЛЬ ДМА - 2-Й КАНАЛ, УСАРТ1, ПЕРЕДАЧА - байт
dma_start(2, DMA_CONTINOUS, &DMA_RS232_BUFER_out[0],32); /
|
В режиме отладки проверил что буфер DMA_RS232_BUFER_out заполняется данными.
|
|
|
|
05.05.2013, 22:47
|
|
Гражданин KAZUS.RU
Регистрация: 06.08.2006
Сообщений: 694
Сказал спасибо: 24
Сказали Спасибо 38 раз(а) в 31 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Привет форумчане. Всех с Пасхой. Все тот же камень. Решил отставить пока режим ДМА. И разобраться с прерываниями.
Допустим у меня есть два таймера №6 и №7
Они тактируются от внутреннего генератора. Так вот у меня при срабатывании таймера №6 идет опрос 16 каналов АЦП (совет типа взведи флаг и в основной программе проверяй его и опрашуй АЦП не катит). И наступает такой момент когда при обработке АЦП внутри прерывания по таймеру №6 происходит прерывание по таймеру №7. Как я понял 24 серия позволяет использовать вложенные прерывания, при этом вложенные прерывания должны иметь более высокий приоритет по сравнению с текущим прерыванием. Т.е. есл изадать таймеру№6 уровень 3 а таймеру №7 уровень 5 то как я понимаю если будет обработка прерывания таймера №6 и произойдет прерывание по таймеру №7 то программа должна перейти на обработку таймера №7 а по окончанию его обработки вернуться на таймер№6 (поправьте если я не правильно понял).
Теперь пытаюсь разобраться с ЦЦСПИКОм.
Цитата:
|
enable_interrupts(INT_TIMER6); //РАЗРЕШАЮ ПРЕРЫВАНИЕ ДЛЯ ЗАПУСКА АЦП
enable_interrupts(INT_TIMER7);
ENABLE_INTERRUPTS(INTR_GLOBAL);
|
В документации написано что ENABLE_INTERRUPTS(INTR_GLOBAL); включает все уровни прерываний.
так я задал уровни прерываний
Цитата:
|
#INT_TIMER6 Level=3
#INT_TIMER7 Level=5
|
но прикол в том что при обработке прерывания по таймеру 6 происходит срабатывания прерывания по таймеру 7 а программа туда не переходит.
Что я делаю не так?
Заранее спасибо за ответ
|
|
|
|
07.05.2013, 22:23
|
|
Вид на жительство
Регистрация: 09.12.2006
Сообщений: 337
Сказал спасибо: 422
Сказали Спасибо 34 раз(а) в 26 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Подскажите , пытаюсь сравнить два массива функцией memcmp , не работает , не могу понять почему , вот фрагмент кода
int KOD[8]; // источник
int MEM_KOD[8]; // буфер назначения
int N;
memcpy(MEM_KOD, KOD, ![Горд собой](images/smilies/icon_dovl.gif) ;//копирует содержимое массива KOD в
//массив MEM_KOD размером 8
printf ("KOD = %s \r\n",KOD);
printf ("MEM_KOD= %s \r\n",MEM_KOD);
N = memcmp(KOD[8], MEM_KOD[8], ![Горд собой](images/smilies/icon_dovl.gif) ; ////--ЗДЕСЬ НЕ РАБОТАЕТ!!!
printf ("N= %d \r\n",N);
if (N==0)
{
printf ("Открыто \r\n");
}
Разобрался,нужно: N = memcmp(KOD, MEM_KOD, ![Горд собой](images/smilies/icon_dovl.gif) ; ////--ЗДЕСЬ РАБОТАЕТ!!!
Последний раз редактировалось vlad_ru; 07.05.2013 в 22:42.
|
|
|
|
09.05.2013, 21:49
|
|
Почётный гражданин KAZUS.RU
Регистрация: 11.06.2006
Адрес: 51° 46′ 0″ N, 55° 6′ 0″ E
Сообщений: 1,975
Сказал спасибо: 370
Сказали Спасибо 1,725 раз(а) в 706 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Доброе время суток.
Что то я запутался!
Ситуация такая.
В заголовке указываю, что массив констант из файла перетаскиваю в RAM.
Код:
|
#include ‹18F258.H›
#device ADC=10
#device PASS_STRINGS=IN_RAM
#device CONST=ROM
#fuses H4, NOWDT, NOPROTECT, NOLVP, NOCPD, NOWRT, PUT, NOWRTD
#use delay(clock=40M)
#include ‹DefaultFonts.c›
#include ‹stdlib.h›
#include ‹math.h›
#include ‹string.h›
unsigned int8 i,ch;
unsigned int16 ; |
Выполняю присвоение
Код:
|
void setFont(rom char *font)
{
cfont.font = font;
cfont.x_size = *font;
font++;
cfont.y_size = *font;
font++;
cfont.offset = *font;
font++;
cfont.numchars = *font;
} |
В MPLAB вижу начало этого массива по адресу 0x7B88.
Далее вычисляю координаты ячейки памяти, из которой мне необходимо прочитать данные.
Код:
|
unsigned int16 SUMM = cfont.font + (temp+zz); |
Переменная SUMM принимает значение 0x7ED4.
и теперь мне необходимо прочитать содержимое этой ячейки
листинг
Код:
|
467: ch = *SUMM;
0728 C03F MOVFF 0x3f, 0xfe9
072C C040 MOVFF 0x40, 0xfea
0730 CFEF MOVFF 0xfef, 0x33 |
Я вижу, что в ячейке памяти с адресом 0x7ED4 "лежит" число 0X11, но переменной ch это значение не присваивается.
В CCS есть ограничения по передаче указателя на массив констант, описанный в http://www.ccsinfo.com/forum/viewtopic.php?t=50289.
Не могу понять, где я ошибся.
|
|
|
|
08.06.2013, 11:31
|
|
Вид на жительство
Регистрация: 09.12.2006
Сообщений: 337
Сказал спасибо: 422
Сказали Спасибо 34 раз(а) в 26 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Пытаюсь запустить стандартный драйвер LCD.C ( именно стандартный) , в протеусе работает , в железе не хочет . С драйвером #include "Flex_lcd_16x1.c" все работает и в железе и в протеусе. ЖК однострочный , RW на земле сидит. Хочется разобраться и запустить стандартный драйвер для дальнейшего использованияю.
|
|
|
|
08.06.2013, 12:39
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
welcome61,
Код:
|
#device PASS_STRINGS=IN_RAM
#device CONST=ROM |
Это взаимоисключающие вещи ...
__________________
Осторожно , злой кот
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 10:23.
|
|