08.06.2013, 12:40
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Сообщение от vlad_ru
|
С драйвером #include "Flex_lcd_16x1.c"
|
Исходники так не подключаются !!!
welcome61, то же самое
#include ‹DefaultFonts.c›
__________________
Осторожно , злой кот
Последний раз редактировалось dosikus; 08.06.2013 в 12:53.
|
|
|
|
08.06.2013, 13:38
|
|
Вид на жительство
Регистрация: 09.12.2006
Сообщений: 337
Сказал спасибо: 422
Сказали Спасибо 34 раз(а) в 26 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Куча примеров в сети , так подключены.
Flex_lcd_16x1.c - это драйвер LCD , с ним работает и в железе и в протеусе
LCD.C - только в протеусе работает , в железе нет.
|
|
|
|
08.06.2013, 14:33
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Сообщение от vlad_ru
|
Куча примеров в сети , так подключены.
|
Это не показатель , всего то многократно копируемая ошибка...
CCS можно юзать если не использовать его встроенные фичи и функции .
Но сейчас практически отказался от него , слишком много пакостей обнаружено .
И вам советую переходить на XC8 .
В качестве бонуса тот самый "драйвер"
Можно и нужно подправить заменив "магические" числа на дефайны...
lcd_hd44780.h
Код:
|
#ifndef LCD_HD44780_H
#define LCD_HD44780_H
#include ‹xc.h›
#define RS LA5
#define EN LA4
#define LCD_DAT LATA
#define LCD_DAT_IN PORTA
void lcd_send(unsigned char ,unsigned char );
void lcd_init(void);
void lcd_string(unsigned char ,unsigned char ,const unsigned char * );
void lcd_cls(void);
#endif /* LCD_HD44780_H */ |
lcd_hd44780.с
Код:
|
#include "lcd_hd44780.h"
#define strob_EN EN=1;__delay_us(5);EN=0;
void lcd_send(unsigned char com,unsigned char dat)
{
if(com)RS=1;
else RS=0;
LCD_DAT= (LCD_DAT & 0xF0)|((dat››4)& 0x0F);
strob_EN
LCD_DAT=(LCD_DAT & 0xF0)|(dat & 0x0F);
strob_EN
__delay_ms(1);
}
void lcd_string(unsigned char x,unsigned char y,const unsigned char *dat)
{
unsigned char address;
if(y != 1)
address = 0x40;
else
address=0;
address += x-1;
lcd_send(0, 0x80 | address);
while (*dat)
{lcd_send(1,*dat);
*dat++;
}
}
void lcd_init(void)
{
RS=0;
EN=0;
__delay_ms(10);
LCD_DAT=((LCD_DAT&0xF0)|0x03);
strob_EN
__delay_ms(10);
strob_EN
__delay_ms(10);
strob_EN
__delay_ms(10);
LCD_DAT=((LCD_DAT&0xF0)|0x02);
strob_EN
__delay_ms(10);
lcd_send(0,0x20|(2‹‹2));
__delay_ms(10);
lcd_send(0,0x0c);
__delay_ms(10);
lcd_send(0,1);
__delay_ms(10);
lcd_send(0,6);
__delay_ms(10);
}
void lcd_cls(void)
{
lcd_send(0,0x01);
lcd_send(0,0x02);
} |
Часть кода с использованием из main.c
Код:
|
lcd_init();
delay(200);
lcd_cls();
lcd_string(1, 1, "Hello world"); |
__________________
Осторожно , злой кот
Последний раз редактировалось dosikus; 08.06.2013 в 15:00.
|
|
|
Сказали "Спасибо" dosikus
|
|
|
08.06.2013, 14:40
|
|
Прописка
Регистрация: 29.06.2005
Сообщений: 153
Сказал спасибо: 111
Сказали Спасибо 46 раз(а) в 32 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
4.11.1. Включение файла
Средство «include позволяет, в частности, легко манипулировать на-
борами «def ine и объявлений. Любая строка вида
«include "имя-файла"
или
I
«include ‹имя-файла›
заменяется содержимым файла с именем имя-файла. Если имя-файла за-
ключено в двойные кавычки, то, как правило, файл ищется среди исход-
ных файлов программы; если такового не оказалось или имя-файла за-
ключено в угловые скобки ‹ и ›, то поиск осуществляется по определен-
ным в реализации правилам. Включаемый файл сам может содержать
в себе строки «include.
K&R
|
|
|
|
08.06.2013, 14:48
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Picman, И ЧТО ?
Речь не о оформление #include , а о подключение хэдеров и исходников( кода) модуля .
Идите читать тестера !!!
Сообщение от dosikus
|
слишком много пакостей обнаружено .
|
И это не просто слова .
Ковырял "драйвер" для nRF24L01 , состряпанный кем то из юзеров форума СCS .
Мало того что он просто не переносим , так еще умудрились перегрузку функций заюзать ...
__________________
Осторожно , злой кот
Последний раз редактировалось dosikus; 08.06.2013 в 14:51.
|
|
|
|
08.06.2013, 16:09
|
|
Заблокирован
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Сообщение от dosikus
|
И ЧТО ?
|
А ничего, злокопипаст или непонимание.
Полный текст выглядит так:
Цитата:
|
Любая строка вида
#include "имя-файла"
или
#include ‹имя-файла›
заменяется содержимым файла с именем имя-файла. Если имя-файла заключено в двойные кавычки, то, как
правило, файл ищется среди исходных файлов программы; если такового не оказалось или имя-файла
заключено в угловые скобки ‹ и ›, то поиск осуществляется по определенным в реализации правилам.
Включаемый файл сам может содержать в себе строки #include.
Часто исходные файлы начинаются с нескольких строк #include, ссылающихся на общие инструкции
#define и объявления extern или прототипы нужных библиотечных функций из заголовочных файлов
вроде ‹stdio.h›.
Средство #include — хороший способ собрать вместе объявления большой программы. Он гарантирует, что
все исходные файлы будут пользоваться одними и теми же определениями и объявлениями переменных,
благодаря чему предотвращаются особенно неприятные ошибки. Естественно, при внесении изменений во
включаемый файл все зависимые от него файлы должны перекомпилироваться.
|
И ни слова про .с файлы.
|
|
|
Сказали "Спасибо" nahimovv
|
|
|
09.06.2013, 04:38
|
|
Прописка
Регистрация: 29.06.2005
Сообщений: 153
Сказал спасибо: 111
Сказали Спасибо 46 раз(а) в 32 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Сообщение от dosikus
|
Идите читать тестера !!!
|
Это что новый "пастор"?
При всем уважении к тестеру, я считаю главными K&R.
Тем более, что активно использую подключение .с файлов через #include.
В IDE подключены только основной файл и модули из моей библиотеки через хидеры, а остальные функции подключены в основном файле через #include.
Те компиляторы, которые я использую(HT-PICC 9.83, XC8 и MikroC) спокойно это обрабатывают и программы нормально работают.
Возможно у меня не такие сложные программы, но это сильно упрощает разработку для меня.
Так уж сложилось, что я пишу программы в стороннем редакторе и мне удобней иметь дело с несколькими небольшими файлами, чем "прыгать" по длинному основному файлу. А писать на каждую функцию хидер просто лень, тем более, что K&R предоставили #include и не наложили никаких ограничений на файлы. Еще цитата
"Средство «include - хороший способ собрать вместе объявления боль-
шой программы. Он гарантирует, что все исходные файлы будут пользо-
ваться одними и теми же определениями и объявлениями переменных,
благодаря чему предотвращаются особенно неприятные ошибки. "
Последний раз редактировалось Picman; 09.06.2013 в 05:03.
|
|
|
|
09.06.2013, 10:04
|
|
Заблокирован
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Есть правила, есть рекомендации, есть соглашения, а всё что вы тут понаписали - полная херня. Можете хоть головой об стенку биться.
Ещё раз! K&R упоминают только h-файлы, про с-файлы - ни слова!
с-файл подключается к проекту, а не с помощью #include в другом с-файле, а вместе с ним и объявления и прототипы находящиеся в h-файле (если таковой существует).
|
|
|
|
09.06.2013, 11:40
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Picman, к сожалению не припомню ваш ник на picborda и chipmk, откройтесь .
Понимаете уважаемый, язык С не ограничивается диалектами HT-PICC 9.83, XC8 и тем более далекой от стандарта ардуиноподобной говноподелкой MikroC.
И тем более язык С не изучается методом тыка с опробованием результата -
Цитата:
|
спокойно это обрабатывают и программы нормально работают.
|
Есть стандарт , и разработчики всяко следует ему .
Если для вас это темный лес начинайте изучать.
Здесь
И если вы внимательно читали K&R , у него нигде не упоминалось эта мерзость
#include xxx.c . Напротив , везде подключаются только заголовки .
Еще раз для закрепления :
1) Не изучаем язык методом тыка . Забываем о "заветах" пастера .
2) Директивой препроцессора подключаем только заголовки модулей/библиотек.
В которых нет и не может быть исполняемого кода.
Сам исполняемый код - файлы *.c , *.lib ,*.a ПОДКЛЮЧАЮТСЯ К ПРОЕКТУ !!!
__________________
Осторожно , злой кот
Последний раз редактировалось dosikus; 09.06.2013 в 11:46.
|
|
|
|
09.06.2013, 23:29
|
|
Вид на жительство
Регистрация: 09.12.2006
Сообщений: 337
Сказал спасибо: 422
Сказали Спасибо 34 раз(а) в 26 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Dosikus выложите , если не трудно , весь проект, который Вы приводили выше. Хочу посмотреть на XC8.
Последний раз редактировалось vlad_ru; 09.06.2013 в 23:31.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 10:30.
|
|