PIC и LCD SC1602A

Раздел начинающих пользователей
Правила форума
В песочнице можно спрашивать когда незнаешь где спросить.
В песочнице нелзя посылать в гугл
В песочнице можно задавать любой вопрос, но на него могут и неответить.
Песочница для тех, кто начинает свои вопросы с защиты чайников от пинков.
В песочницу будут перетаскиваться вопросы неполучившие ответа.
Песочница - попытка навести порядок.
На песочницу большие надежды.

Re: PIC и LCD SC1602A

Сообщение mim (mim) » 26 июл 2014, 15:15

Ты меня совсем запутал... Ты же показывал правильные картинки. Ты писал что цифры отображает всегда правильно.
Любой вывод на ЖКИ выполняется одной процедурой RawSend(КОД_ЧИСЛА, 0x10). Все задержки одинаковые.
I Am Legend
Аватар пользователя
Ник: mim
Имя: mim
(Из Лесу, вестимо...)
Легенда
Легенда
Информация о пользователе

Re: PIC и LCD SC1602A

Сообщение Enigm (Enigm) » 27 июл 2014, 11:24

Barmaley_GMN писал(а):Можно ли в чипе включить внутренний резонатор, не выпаивая внешний?

Да
Ставь фьюзы на внутренний ген и корректируй значения под внутренную частоту если нужно.
А выводы на котором висит кварц, сделай их входами,
Аватар пользователя
Ник: Enigm
Имя: Enigm
(Сочи)
Гуру
Гуру
Информация о пользователе

Re: PIC и LCD SC1602A

Сообщение Barmaley_GMN (Barmaley_GMN) » 29 июл 2014, 09:25

mim писал(а):Ты меня совсем запутал... Ты же показывал правильные картинки. Ты писал что цифры отображает всегда правильно.
Любой вывод на ЖКИ выполняется одной процедурой RawSend(КОД_ЧИСЛА, 0x10). Все задержки одинаковые.

Распутываю:
Цифры (команда number) всегда выводятся корректно. То, что выводится командой string (цифры, буквы, символы) всегда выводятся с ошибкой.
За всё время, по команде string один раз вывелось конкретно то, что нужно. После выключения и включения устройства (без перепрошивок и прочих изменений) опять выводилась "каша".
Enigm писал(а):
Barmaley_GMN писал(а):Можно ли в чипе включить внутренний резонатор, не выпаивая внешний?

Да
Ставь фьюзы на внутренний ген и корректируй значения под внутренную частоту если нужно.
А выводы на котором висит кварц, сделай их входами,

Смотрю в даташит и вижу фигу )) Осциялятор на внутренний переключить могу, а как и где выставляется его частота, не догоняю. Такого регистра как osccon не вижу. Как выставить в программе внутренний резонатор на 8 MHz?
Fuse.jpg
У вас нет доступа для просмотра вложений в этом сообщении.
Ник: Barmaley_GMN
Имя: Barmaley_GMN
(Герой!)
Практик
Практик
Информация о пользователе
Вернуться наверх

Re: PIC и LCD SC1602A

Сообщение mim (mim) » 29 июл 2014, 09:57

Проверь это (на 20 МГц).
SC1602_1.rar
Enigm писал(а):Смотрю в даташит и вижу фигу ))
Хреново... Рисунок FIGURE 2-8:, регистры OSCCON и OSCTUNE (только маленькими буквами).
У вас нет доступа для просмотра вложений в этом сообщении.
I Am Legend
Аватар пользователя
Ник: mim
Имя: mim
(Из Лесу, вестимо...)
Легенда
Легенда
Информация о пользователе
Вернуться наверх

Re: PIC и LCD SC1602A

Сообщение Barmaley_GMN (Barmaley_GMN) » 29 июл 2014, 10:09

))) Не вижу в программе FC.
Ник: Barmaley_GMN
Имя: Barmaley_GMN
(Герой!)
Практик
Практик
Информация о пользователе
Вернуться наверх

Re: PIC и LCD SC1602A

Сообщение mim (mim) » 29 июл 2014, 10:13

Не зли меня... Соображай быстрее. В моей программе их нет - проверь ее в железе. В своей ставь сам. Никогда примеров не видел????
I Am Legend
Аватар пользователя
Ник: mim
Имя: mim
(Из Лесу, вестимо...)
Легенда
Легенда
Информация о пользователе
Вернуться наверх

Re: PIC и LCD SC1602A

Сообщение Barmaley_GMN (Barmaley_GMN) » 29 июл 2014, 10:44

mim писал(а):Не зли меня... Соображай быстрее. В моей программе их нет - проверь ее в железе. В своей ставь сам. Никогда примеров не видел????

Я бы рад соображать быстрее)) Я не про твою программу, я про общую. Насколько я понимаю, конфигурация резонатора выставляется во вкладке конфигурация чипа. Там есть установка на внутренний и внешний резонаторы. В настоящий момент включен внешний на HS (HiSpeed) и подключен 20MHz кварц. Для выставления внутреннего кварца, я меняю этот параметр на Int RS clocout, но как где прописывается его частота не догоняю. В даташите написаны регистры OSCCON и OSCTUNE, а в вышеупомянутой вкладке FC я их не вижу. Отсюда и вопросы.
Вечером проверю в железе.
Ник: Barmaley_GMN
Имя: Barmaley_GMN
(Герой!)
Практик
Практик
Информация о пользователе
Вернуться наверх

Re: PIC и LCD SC1602A

Сообщение mim (mim) » 29 июл 2014, 10:52

Barmaley_GMN писал(а): В даташите написаны регистры OSCCON и OSCTUNE, а в вышеупомянутой вкладке FC я их не вижу.

Правильно мыслишь, их и нет в FC, их нужно ручками прописывать в блоке Си. Есть много примеров, например. Пользуйся поиском.
I Am Legend
Аватар пользователя
Ник: mim
Имя: mim
(Из Лесу, вестимо...)
Легенда
Легенда
Информация о пользователе
Вернуться наверх

Re: PIC и LCD SC1602A

Сообщение Barmaley_GMN (Barmaley_GMN) » 29 июл 2014, 19:02

С последней прогой положительного эффекта нет. Всё также выводит не то, что нужно.
Реагирует на подачу питания. (в развязке питания чипа стоит диод, для того, чтобы программатор питал чип, а не всю схему). Если параллельнодиоду поставить перемычку, набор символов меняется.
Переход на внутренний кварц ничего не дал (проблема осталась та же)
Замена БП, включение в цепь питания ПИКа дополнительной цепочки из дросселя и кондёра тоже ничего не дали.
У меня идеи кончились.
Ник: Barmaley_GMN
Имя: Barmaley_GMN
(Герой!)
Практик
Практик
Информация о пользователе
Вернуться наверх

Re: PIC и LCD SC1602A

Сообщение mim (mim) » 30 июл 2014, 04:54

Barmaley_GMN писал(а):У меня идеи кончились.

Похоже что у меня тоже...

1. Вывод кода на ЖКИ осуществляет макросом RawSend(Character, 0x10);.
2. Все временные задержки находятся в макросе RawSend(Character, 0x10); - смотри код Си.
3. Вывод Цифровых значений осуществляется макросом PrintNumber по следующемеу алгоритму...

- вычисление значения разряда десятичного числа - tmp_byte
- вывод кода через RawSend('0' + tmp_byte, 0x10); (к tmp_byte добавлен код '0'=48, таким образом получили ASCII)
- .... и т.д.
- вычисление значения разряда десятичного числа - tmp_byte
- вывод кода через RawSend('0' + tmp_byte, 0x10);

4. Таким образом вывод на ЖКИ Цифровых значений имеет следующую интерпретацию

- пауза (вычисления)
- RawSend()
- ....
- пауза (вычесления)
- RawSend()

5. Вывод строки на ЖКИ осуществляется макросом PrintString по следующемеу алгоритму...

- цикл
- вывод кода через RawSend(String[idx], 0x10); idx - меняется в цикле.

6. Вывод строки на ЖКИ через макрос PrintASCII, если строка набрана как "0123456789ABCDEF" осуществляется по следующему алгоритму (FC раскладвает ее на последовательность).

FCD_LCDDisplay0_PrintASCII('0'); (внутри только одна функция RawSend();)
FCD_LCDDisplay0_PrintASCII('1');
.......
FCD_LCDDisplay0_PrintASCII('E');
FCD_LCDDisplay0_PrintASCII('F');

это тоже самое что и
RawSend('0', 0x10);
RawSend('1', 0x10);
....
RawSend('E', 0x10);
RawSend('F', 0x10);

Таким образом, вывод любых значений осуществляется через RawSend(), одна и та же функция выводит значения на шину данных ЖКИ. Через нее происходит и Инициализация ЖКИ (думаю, что при ошибке инициализации, ЖКИ не работал бы совсем). В компоненте ЖКИ изучи Си код во всех макросах, попробуй поменять паузы, пробуй различные варианты.
PS Свободные ноги шины данных на ЖКИ посади на землю.
I Am Legend
Аватар пользователя
Ник: mim
Имя: mim
(Из Лесу, вестимо...)
Легенда
Легенда
Информация о пользователе
Вернуться наверх

Пред.След.

Вернуться в ПЕСОЧНИЦА

Кто сейчас на форуме

Пользователь просматривает форум: MailRu [Bot]

cron