
| Если это ваш первый визит, рекомендуем почитать справку по форуму. Для размещения своих сообщений необходимо зарегистрироваться. Для просмотра сообщений выберите раздел. |
![]() |
||
PIC контроллеры. Программаторы и первый проект на PIC
|
||
| Программирование микроконтролеров,ремонт аудио/видео/бытовой техники,полезные устройства для дома,телефония, обсуждение статей журнала Радио |
![]() |
|
|
Опции темы |
|
|
#1051 | |
|
Форумец
|
Цитата:
Код:
sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D4 at RB0_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D7 at RB3_bit;
sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
char *text = "mikroElektronika";
void main() {
LCD_Cmd(_LCD_CLEAR); // Очистить дисплей
LCD_Cmd(_LCD_CURSOR_OFF); // Кусор выключен
LCD_Out(1,1, text); // Вывести в первую строку слово "mikroElektronika"
Delay_ms(1000); // задержка в 1 сек
LCD_Out(2,6,"mikroE"); // Вывести во вторую строку, начиная с 6-й позиции слово "mikroE"
}
|
|
|
|
|
|
#1055 |
|
Форумец
|
|
|
|
|
|
#1057 |
|
Форумец
|
|
|
|
|
|
#1059 | |
|
Форумец
Сообщений: 88
Регистрация: 04.02.2011
Возраст: 46
|
Цитата:
Смысл понял, ни разу не делал АЦП и не использовал компараторы на PIC. Покажите пожалуйста любой пример кода для подобного анализа. Благодарю! С уважением, Дмитрий. Нашел вот это, подойдет? http://kazus.ru/nuke/pic/parts/AN546.pdf |
|
|
|
|
|
#1060 | |
|
Форумец
|
Цитата:
АЦП в МК штука интересная. Код работы с АЦП в принципе простой, но надо знать сам принцип работы АЦП и особенности его реализации. Есть в АЦП PIC некоторые особенности, которые надо знать. Документ DS33023A (http://ww1.microchip.com/downloads/e...doc/33023a.pdf) и на русском http://www.microchip.ru/files/d-sheets-rus/pic16_23.pdf В PIC контроллерах используется схема АЦП последовательного приближения. Далее относительно АЦП PIC12F675. 1. Сопротивление нагрузки на входе АЦП не должно быть больше указанного в DS (например, для PIC12F675 - не более 10 кОм), несоблюдение может привести к тому, что показания будут не точными, скачущими и т.д. Меньше можно, больше нельзя. 2. УВХ (устройство выборки и хранения). Накопительный конденсатор УВХ служит для захвата значения входного напряжения и хранения его в процессе преобразования (т.е. при преобразовании конденсатор не разряжается). Отсель вывод - когда нет преобразования конденсатор УВХ подключен к аналоговому входу, когда идет захват и преобразование - отключен от аналогового входа. 3. Tad - время преобразования (одного бита, часто путают с общим временем преобразования), а у нас их 10, итого по DS для преобразования 10 бит надо 11 Tad. Минимальное Tad (опять же по DS) - 1,6 мкс. Итого минимальное время преобразования 10 бит - 11*1.6=17,6 мкс. Это значит, что минимум 17,6 мкс конденсатор УВХ отключен от аналогового входа. Это к тому что за это время напряжение на входе могло сильно измениться и может потребоваться некоторое время пока конденсатор зарядится или разрядится до текущего напряжения на входе. И это время - Tacq. Остальное позднее.... Последний раз редактировалось petrd; 20.10.2012 в 19:48. |
|
|
|
|
|
#1062 |
|
Форумец
Сообщений: 9
Регистрация: 15.11.2012
|
Здравствуйте Петр! Буду очень презнателен если вы поможите мне. Работаю с мПаскалем имеется PIC12f629 . Подскажите пожалуйста как можно инвертировать вход например : GP1 и как организовать прерывание по этому входу.
|
|
|
|
|
#1064 | |
|
Форумец
|
Цитата:
Код:
GPIO.1 := 1- GPIO.1; |
|
|
|
|
|
#1065 |
|
Форумец
Сообщений: 9
Регистрация: 15.11.2012
|
Я прошу прощения, я только начал изучать М.К. Дело в том, что ик приёмник подаёт положительный сигнал, и отключает его только при наличии сигнала. Можно осмелится вас попросить простой пример использования прерывания по входу (пусть GP2) на паскале.
|
|
|
|
|
#1066 | |
|
Форумец
|
Цитата:
"Дело в том, что ик приёмник подаёт положительный сигнал, и отключает его только при наличии сигнала." Представьте, что вы посторонний человек - понять эту фразу ему по силам будет? И в конце "контрольный в голову" - прерыванием GP2 - как, что, для чего, что от него ожидается? Излагайте мысли понятно. |
|
|
|
|
|
#1069 |
|
Форумец
Сообщений: 9
Регистрация: 15.11.2012
|
program main;
// PIC12F629 var i: byte; procedure interrupt; // Процыдура прирываний begin i:= 1; end; begin GPIO := 00; // инициализировать порты GPIO CMCON := 7; // отключить компораторы TRISIO := 0; // все GPIO выходы TRISIO.GP1 :=1; // GP1 как вход { !!!! неизвестный мне код !!!!!! } i:=0; GPIO.GP2:=0; while TRUE do begin if i=1 then begin GPIO.GP2:=1; Delay_ms(500); GPIO.GP2:=0; i:=0; end; end; end. По нажатию кнопки загорается светодиод, а именно прерывание нужно - потому, что в теле программы будет другой алгоритм. |
|
|
|
|
#1071 | |
|
Форумец
|
Цитата:
Код:
procedure interrupt();
begin
if (INTIF_bit <> 0) then
begin
i:=1;
INTIF_bit := 0;
end;
end;
.....
TRISIO2_bit := 1; //вход
INTEDG_bit := 1; //фронт/спад
INTE_bit := 1; //разрешение прерывания INT
GIE_bit := 1; //глобальное разрешение прерываний
........
|
|
|
|
|
|
#1072 |
|
Форумец
Сообщений: 9
Регистрация: 15.11.2012
|
Да сработало, но только один раз, а потом не реагирует на нажатие. (Нажал первыйраз - светодиод зажёгся и погас как надо, нажал второй раз светодиот не загорается) Немугу понять, что обнулить надо.
Последний раз редактировалось Dima_Jey; 16.11.2012 в 21:22. |
|
|
|
|
#1074 |
|
Форумец
Сообщений: 88
Регистрация: 04.02.2011
Возраст: 46
|
petrd, здравствуйте!
Давно я не писал на форум... 1). Подскажите пожалуйста, выбрал для дальнейшей работы PIC18F4620, на сайте microchip.com в характеристиках для данного камня указано: "LCD Module An integrated LCD driver module, capable of driving 48 segments and 4 commons for LCD display (132 pixels)" - что это означает? В datasheet про это ничего не нашел. 2). Планирую связку PIC18F4620 + LCD16x2(логика +3.3V) - питание и логика на +3.3V - я правильно понимаю, что в программе PICkit 2 нужно сначала будет выставить данное напряжение и только потом программировать, а также программирование будет проходить при выставленном напряжении, а не +5V? Благодарю за ответы! |
|
|
|
|
#1075 | |
|
Форумец
|
Цитата:
2. Да. |
|
|
|
|
|
#1076 |
|
Форумец
Сообщений: 2
Регистрация: 07.12.2012
Возраст: 51
|
Прошу прощения, может я повторюсь. Как реализовать в MikroC частотомер на Pic? Насколько я понял, необходимо задействовать один из таймеров, например TMR0. Настроить его на прерывания с определенным временным интервалом, возможно так:
OPTION_REG = ??? (что сюда писать, какую величину?), затем использовать один из портов на вход для подсчета входящих импульсов и в нужный момент (который наступает через определенное число прерываний таймера) вывести результат вычислений (количество вошедших импульсов за промежуток времени, то-бишь в Гц) на LCD. Как все это решить программно, прошу помочь. Еще, скачал программу для расчетов таймеров PIC Timer Calculator, помогите и с ней разобраться. Всем спасибо! Скоро Новый Год! |
|
|
|
|
#1077 | |
|
Форумец
|
Цитата:
http://www.microchip.su/showthread.p...F2%EE%EC%E5%F0 А с калькулятором, что не понятно? Спрашивайте. |
|
|
|
|
|
#1079 |
|
TERminaTOR
Сообщений: 6,540
Регистрация: 05.04.2007
Возраст: 51
|
Проблема!
Собрал программатор (JDM) по схеме http://radiokot.ru/circuit/digital/pcmod/13/01.gif Для программирования взял оболочку winpic800 Не пошло Потом нашел оболочку winpicpgm. Она позволяет автоопределить программатор, "прозвонить" его отдельными сигналами. Странное дело, прозвонка идет, а автоопределение - нет. Т.е. сигналы с порта через программатор к процессору проходят, но программа почему-то не может определить программатор и процессор. Работу программатора тестером проверял. Сигналы через него идут. Но результат нулевой. Даже снижал скорость передачи данных. Без толку. Вот и думаю. В чем засада... Может мой путь - тупиковый и есть заведомо рабочие схемы, которые можно собрать и не париться? ЗЫ по схеме сейчас посмотрел - тот же Экстра пик. С той лишь разницей, что в качестве логического элемента я применил К561ЛА7. Но там все логические сигналы не хуже проходят. Последний раз редактировалось Globuses; 07.01.2013 в 13:29. |
|
|
|
|
#1080 |
|
TERminaTOR
Сообщений: 6,540
Регистрация: 05.04.2007
Возраст: 51
|
Поправка! После плясок с бубном программатор в ICProg стал детектироваться, но не смотря на установку больших задержек при передаче данных, проц не шьется, хотя тестирование подтвердило работоспособность программатора (т.е. сигналы до проца проходят). Что еще проверить надо?
|
|
|