Если это ваш первый визит, рекомендуем почитать справку по форуму. Для размещения своих сообщений необходимо зарегистрироваться. Для просмотра сообщений выберите раздел. |
PIC контроллеры. Программаторы и первый проект на PIC |
Программирование микроконтролеров,ремонт аудио/видео/бытовой техники,полезные устройства для дома,телефония, обсуждение статей журнала Радио |
|
Опции темы |
21.03.2012, 03:11 | #991 | |
Форумец
Сообщений: 88
Регистрация: 04.02.2011
Возраст: 45
Не в сети |
Цитата:
Также данная микросхема позволяет работать в обоих направлениях, но будет доступен только один вход/выход, хотя у нее их 2-а. Еще предупрежу на всякий случай, микросхема мелкая 3х3мм для SMD монтажа, поэтому паять ее тяжеловато. Результат порадовал, при напряжении питания PIC +5V, от модема получаю четкие ответы, т.е. микросхема справилась с поставленной задачей. |
|
21.03.2012, 10:53 | #992 |
Форумец
Сообщений: 88
Регистрация: 04.02.2011
Возраст: 45
Не в сети |
Сегодня столкнулся со следующей проблемой компилятора (mikroC PRO for PIC v.5.4.0):
0 434 Demo Limit Demo Limit Кто то решил подобную проблему? Вопрос более не актуален... Последний раз редактировалось Teeen; 21.03.2012 в 11:47. |
21.03.2012, 21:55 | #993 | |
Форумец
Сообщений: 9
Регистрация: 22.01.2012
Не в сети |
Цитата:
2. 4 MГц Конфиг 0x3F11 3. как замерить не знаю ( используется внутренний тактовый генератор). Tимп=Tпаузы=примерно 140 секунд. petrd выложите пожалуста в архиве рабочий пример данной программы для контроллера 16f819 b 12f683 (12f675) |
|
22.03.2012, 08:41 | #994 | |
Форумец
|
Цитата:
Для PIC16F819. У Вас внутренний генератор работает на частоте по умолчанию (31,25 кГц), т.е. в 124 раз медленнее задуманного, а задумали 4 МГц. Поэтому надо внутренний генератор переключить на 4 МГц. А можно ничего и не делать, просто в настройках проекта указать частоту 31,25 кГц, откомпилировать, прошить и все должно заработать как надо. Несложно, тренируйтесь. И если есть сомнения смотрим в раздел DS про осциллятор. Код:
void main() { OSCCON = 0x60; // переключили тактовую с 31,25 кГц на 4 МГц while (!IOFS_bit) continue; // ждем когда частота застабилизируется TRISB=0; // настроили выводы PORTB на вывод PORTB=0; // записали в PORTB 0 while(1){ // организовали вечный цикл PORTB=~PORTB; // инверсия уровней на выводах PORTB delay_ms(1000); // задержка на 1000 мс = 1 сек } }// main Последний раз редактировалось petrd; 22.03.2012 в 10:30. |
|
22.03.2012, 11:45 | #995 | ||
Форумец
Сообщений: 88
Регистрация: 04.02.2011
Возраст: 45
Не в сети |
petrd, подскажите пожалуйста, принятые на RX UART складываю во временный буфер. Принимаю данные ч/з прерывание:
Цитата:
Думал такая конструкция будет правильной: Цитата:
|
||
22.03.2012, 12:31 | #996 |
Форумец
|
|
23.03.2012, 03:17 | #997 |
Форумец
Сообщений: 88
Регистрация: 04.02.2011
Возраст: 45
Не в сети |
|
23.03.2012, 09:27 | #998 | |
Форумец
|
Цитата:
|
|
28.03.2012, 11:39 | #999 | |
Форумец
Сообщений: 88
Регистрация: 04.02.2011
Возраст: 45
Не в сети |
Цитата:
Проблему решил. Тем кто будет писать разборщик ответов от модема, сразу хочу предупредить, разбирайте на лету (по мере поступления байтов в PIC), сразу как только встретился символ перевода строки 0x0A (LF) или "\n" в С. Я пытался дождаться окончания приема ответов от модема, но такая технология работает нестабильно! И поэтому от нее пришлось отказаться... Причем, новый код получился намного компактней и работает быстрее. Вот такое чудо: |
|
30.03.2012, 09:30 | #1000 | |||
Форумец
Сообщений: 88
Регистрация: 04.02.2011
Возраст: 45
Не в сети |
petrd, здравствуйте!
Расскажите пожалуйста об организации памяти МК на примере PIC18F... доступным языком. Не могу понять каким образом реализовать следующую конструкцию: Есть переменная: Объявления переменных: Цитата:
Цитата:
Второй вопрос: каким образом очищать переменные после их использования? Т.е. чтобы в них находились не предыдущие значения, а например 0x20 (пробел). Третий вопрос: если объявлена переменная, Цитата:
Четвертый вопрос: каким образом резервируется память под переменные вида char buff[12]; ? Спасибо! С уважением, Дмитрий. |
|||
30.03.2012, 16:00 | #1001 | |
Форумец
Сообщений: 88
Регистрация: 04.02.2011
Возраст: 45
Не в сети |
Проблему решил пока так:
Цитата:
пока вроде работет, но все равно, хотелось бы послушать высококлассных специалистов, которые на пальцах объяснят основы по памяти и переменным. |
|
31.03.2012, 10:45 | #1002 | ||
Форумец
|
Цитата:
....... Отсчет элементов массивов ведется от нуля. А вот количество элементов считается от 1. Объявление char buff[1] - массив, состоящий из 1-го элемента, и дальше обратиться к нему можно, как к buff[0]. Элемент нулевой, но по счету он первый и единственный. По четвертому вопросу - не понял вопроса. Пример с указателями - копирование строк (смотреть в симуляторе): Цитата:
Последний раз редактировалось petrd; 31.03.2012 в 20:20. |
||
16.04.2012, 06:58 | #1006 |
Форумец
|
|
16.04.2012, 10:27 | #1008 |
Форумец
|
|
16.04.2012, 12:07 | #1009 | |
Форумец
Сообщений: 88
Регистрация: 04.02.2011
Возраст: 45
Не в сети |
Цитата:
Увеличить фото »» Увеличить фото »» Увеличить фото »» И не пойму, причем тут MPLab, ведь програматор это одно (его прошивку можно обновлять с сайта), а среда разработки, в том числе компилятор - другое. Где я ошибаюсь? |
|
16.04.2012, 14:29 | #1010 | |
Форумец
|
Цитата:
2. Для PICKit2 давно ничего больше не обновляется: последняя оболочка 2.61, последняя прошивка 2.32, последний Device File - 1.62.14 и больше не будет. Дальше поддержка только PICKit3. 3. MPLAB не причем, он у меня как эталон, если среда последней версии, то там всегда можно получить самые свежие данные какой программматор-отладчик что поддерживает и никуда больше не надо заглядывать. К тому же я в нем работаю. |
|
17.04.2012, 03:34 | #1011 |
Форумец
Сообщений: 88
Регистрация: 04.02.2011
Возраст: 45
Не в сети |
petrd, спасибо за развернутый ответ. Вы профессионально занимаетесь программированием, что понадобились такие модели PIC?
Я то так, развлекаюсь, для дома автоматику собираю и чтобы голова работала... навыки не терять в программировании. petrd, еще к вам вопрос: почему выбрали именно MPLAB, а не mikroC PRO for PIC ? Последний раз редактировалось Teeen; 17.04.2012 в 08:13. |
17.04.2012, 10:24 | #1012 | |
Форумец
|
Цитата:
Да нет, вообщем, не выбирал ничего, каждый компилятор для своих задач. А вообще использую - Hi-Tech PICC (STD), MCC18, MikroC (PRO и 8.2), SDCC. К тому же в MPLAB симулятор нормальный, в отличие от MikroE и железная отладка при помощи PICKit2,3 без всяких cof файлов проводится. |
|
27.04.2012, 05:39 | #1013 | |||||
Форумец
Сообщений: 88
Регистрация: 04.02.2011
Возраст: 45
Не в сети |
petrd,
поясните пожалуйста работу данного алгоритма: Цитата:
Цитата:
Цитата:
Цитата:
Теперь вопрос, все-таки кодировка должна браться из Datasheet LCD или таблицы символов MikroC? Вывод осуществляю так: Цитата:
Последний раз редактировалось Teeen; 27.04.2012 в 06:01. |
|||||
27.04.2012, 07:12 | #1014 | ||
Форумец
|
Цитата:
Цитата:
У Вас видимо в знакогенераторе LCD нет русских символов, индикатор в России куплен или типа с ebay? А то недавно там присмотрел LCD очень дешевые, а когда с продавцом пообщался, то выяснилось, что ни русских символов, ни задней подсветки в них нет, вот потому и дешевые. Совет. Пишете такую программку: в цикле с задержкой в пару секунд (или инкремент через кнопку) - на одну строку выводите код символа от 0 до 255, а на другую сам символ и всю правду узнаете про свой индикатор без DS ( и код символа и какой этому коду символ сопоставлен). |
||
27.04.2012, 08:29 | #1015 |
Форумец
Сообщений: 88
Регистрация: 04.02.2011
Возраст: 45
Не в сети |
petrd, увы, но вы как всегда правы. Добавил код по вашему совету и... русскими буквами тут и не пахнет! Но подсветка есть (голубая).
Да, действительно я LCD покупал ч/з ebay за 150 рублей. Посоветуйте, может ссылку дадите на LCD с поддержкой русских букв. Может маркировкой отличаются? На будущее пригодится. Спасибо! P.S. сейчас посмотрел ebay не пойму как определить есть ли поддержка RUS для данного LCD или нет... |
27.04.2012, 08:50 | #1016 | |
Форумец
|
Цитата:
|
|
27.04.2012, 09:09 | #1017 | |
Форумец
Сообщений: 88
Регистрация: 04.02.2011
Возраст: 45
Не в сети |
Цитата:
Такой как у вас ЖК в Чип&Дип стоит 450 рублей (http://www.chipdip.ru/product1/8694988885.aspx) и то под заказ Плюс доставка до нас - рублей 200, нехило за один получается. Вот нашел по кодировке ЖК фирмы Winstar: http://www.kit-e.ru/articles/displ/2001_06_26.php Последний раз редактировалось Teeen; 27.04.2012 в 09:29. |
|
27.04.2012, 14:50 | #1018 | |
Форумец
|
Цитата:
Пару раз всякое-разное покупал здесь - http://chip-nn.ru/72.php Цены приличные, доставка почтой 175 руб. |
|
10.05.2012, 06:21 | #1019 | |||
Форумец
Сообщений: 88
Регистрация: 04.02.2011
Возраст: 45
Не в сети |
petrd, здравствуйте!
Поясните пожалуйста код: Цитата:
Нужно получить следующее: Цитата:
Цитата:
Последний раз редактировалось Teeen; 10.05.2012 в 06:39. |
|||
10.05.2012, 07:40 | #1020 | |
Форумец
|
Цитата:
unsigned short SetTemp <- максимальное число 255, т.е. три символа. Пусть SetTemp = 123, тогда ust[0]=SetTemp/100+48 <- 123 / 100 = 1, а код цифры "1" в кодовой таблице ASCII - 49 (1+48), в итоге ust[0] = 49. ust[1]=(SetTemp/10)%10+48 <- 123 / 10 = 12 % 10 = 2, а код цифры "2" в кодовой таблице ASCII - 50 (2+48), в итоге ust[1] = 50. ust[2]=SetTemp%10+48 <- 123 % 10 = 3, а код цифры "3" в кодовой таблице ASCII - 51 (3+48), в итоге ust[2] = 51. Думаю разберетесь. |
|