Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
21.05.2010, 22:20
|
#11
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,548
Сказал спасибо: 384
Сказали Спасибо 737 раз(а) в 417 сообщении(ях)
|
Re: CCS C compiller, файл <LCD.C>
Ну вообще-то "void LCD_IND_DATA(int8 *LCD_Dat)" - это тоже объявление переменной, доступной внутри функции.
А по стандарту, при обращении к указателю для присвоения/чтения адреса переменной (char *Ptr; Ptr=&var), звездочка не ставится. При присвоении/чтении значения переменной, на которую установлен указатель (*Ptr = 0x10), звездочка ставится.
P.S. Шпака не читал )
|
|
|
Сказали "Спасибо" AJScorp
|
|
|
23.05.2010, 09:42
|
#12
|
Частый гость
Регистрация: 15.05.2010
Адрес: Екатеринбург
Сообщений: 19
Сказал спасибо: 6
Сказали Спасибо 1 раз в 1 сообщении
|
Re: CCS C compiller, файл <LCD.C>
Спасибо понял. А Вы ещё не подскажите? У меня проблема обнаружилась при присвоении значений выводам портов. Приходится использовать по умолчанию. В файле LCD.C запутано дано это переназначение. Я с ним разобраться не смог чтобы вникнуть. Пробую на примере файла 9346.С. Там очень всё просто. К тому же в самом файле говорится что выводы могут быть переназначены (переопределены) из главной программы.
В файле 9346.С:
Код:
|
#ifndef EEPROM_SELECT
#define EEPROM_SELECT PIN_B7
#define EEPROM_CLK PIN_B6
#define EEPROM_DI PIN_B5
#define EEPROM_DO PIN_B4
#endif |
Я же хочу например использовать другие выводы и в своём файле 18F458_test.C пишу так:
Код:
|
#define EEPROM_SELECT PIN_C7
#define EEPROM_CLK PIN_C6
#define EEPROM_DI PIN_C5
#define EEPROM_DO PIN_C4 |
Однако, моё назначение игнорируется программой и выдаётся предупреждение о дублировании этих установок.
Я пробовал удалять в файле 9346.С эти строки, но он пишет что значения этих слов не установлены вообще - ошибка. Вобщем не даёт никак поменять выводы. Я думал дело в том что мои установки не видно из файла 9346.С и добавлял слово extern вот так:
Код:
|
#define extern EEPROM_SELECT PIN_C7
#define extern EEPROM_CLK PIN_C6
#define extern EEPROM_DI PIN_C5
#define extern EEPROM_DO PIN_C4 |
Но и это абсолютно не помогло. Что указал, что не указал. Один фиг также...
Последний раз редактировалось Zepp Ditrich; 23.05.2010 в 09:44.
|
|
|
|
23.05.2010, 09:53
|
#13
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
Re: CCS C compiller, файл <LCD.C>
Полностью проект и желательно в протеусе,покапаюсь вспомню все ![Улыбка](images/smilies/icon_smile.gif)
Все равно надо все вспоминать....
__________________
Глаза боятся,а руки делают.
|
|
|
Сказали "Спасибо" CERGEI1982
|
|
|
23.05.2010, 13:50
|
#14
|
Частый гость
Регистрация: 15.05.2010
Адрес: Екатеринбург
Сообщений: 19
Сказал спасибо: 6
Сказали Спасибо 1 раз в 1 сообщении
|
Re: CCS C compiller, файл <LCD.C>
Хорошо вот мой пробный вариант. По возможности укажите что я из всего этого неправильно наделал? Заранее благодарю. В управлении LCD у меня не получилось переназначить три управляющие линии. Шина данных переназначалась нормально. 18F458_test.rar
Здесь попытка управленя дисплеем, внутренний EEPROM и наружный 93с46 для пробы взятый чтобы порты переназначить. Я всё это делал на разных PIC16 в ассемблере. Мог использовать там любые выводы любых портов. Хочется на СИ освоить стандартные библиотечные функции.
Основная цель, которой я добивался: вывести на дисплей 8 байт данных какого-нибудь массива примерно в таком hex формате 01 23 45 67 89 9A BC DE только слитно 16 символов.
Последний раз редактировалось Zepp Ditrich; 23.05.2010 в 14:16.
|
|
|
|
23.05.2010, 14:19
|
#15
|
Частый гость
Регистрация: 15.05.2010
Адрес: Екатеринбург
Сообщений: 19
Сказал спасибо: 6
Сказали Спасибо 1 раз в 1 сообщении
|
Re: CCS C compiller, файл <LCD.C>
Проект выложил, ещё функцию lcd_gotoxy(x, y) я не могу разобать. Какие параметры ей требуются? Там 0x80 якобы вторая строка, а она 0x40 на самом деле то..
|
|
|
|
23.05.2010, 16:04
|
#16
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
Re: CCS C compiller, файл <LCD.C>
На днях гляну заинтересовало,есть проекты на пик16 надо глянуть
__________________
Глаза боятся,а руки делают.
|
|
|
|
25.05.2010, 19:12
|
#17
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
Re: CCS C compiller, файл <LCD.C>
Попробывал на pic18f252,чтоб вспомнить и благо досика проект сохранился ![Улыбка](images/smilies/icon_smile.gif) Завтра постараюсь твой запустить,седня уже еле соображаю,хоть с модулем CAN не знаком,но выключить найду где.
В архиве исходники и проект в протеусе v 7.6 SP4
Да и почему не применяеш родную оболочку CSS ?
Во первых глянь на структуру
Код:
|
struct lcd_pin_map {
BOOLEAN rs;
BOOLEAN enable;
BOOLEAN unused;
BOOLEAN unused_1;
int data : 4;
} lcd; |
Определяет где какой за что отвечает,как видиш rs это нулевой бит порта и т. д.
Во вторых инструкция:
Код:
|
#locate lcd = getenv("sfr:PORTB") |
как понял структура lcd привязывается к определеному адресу в SFR(Special Function Registers),лучше обратится к хэлпу на CSS.
Ну и
Код:
|
#define set_tris_lcd(x) set_tris_b(x) |
понятно что к чему надеюсь.
__________________
Глаза боятся,а руки делают.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 19:40.
|
|