Большой Воронежский Форум

Если это ваш первый визит, рекомендуем почитать справку по форуму. Для размещения своих сообщений необходимо зарегистрироваться. Для просмотра сообщений выберите раздел.
Вернуться   Большой Воронежский Форум » Компьютеры и все, что с ними связано » »Радиолюбитель
Программирование микроконтролеров,ремонт аудио/видео/бытовой техники,полезные устройства для дома,телефония, обсуждение статей журнала Радио

Ответ
 
Опции темы
Старый 09.09.2012, 21:02   #1051   
Форумец
 
Сообщений: 1,532
Регистрация: 19.02.2009
Возраст: 54
Записей в дневнике: 1

petrd вне форума Не в сети
Цитата:
Сообщение от dzer Посмотреть сообщение
Добрый Вам день, уважаемые форумчане.
Прошу Вашей помощи.
post 46-пример, как можно работать с ЖКИ индикатором.
mikro C-компилирует нормально, а mikro C PRO, ни как. Не пойму в чем причина.
Прошу Вашей помощи.
Библиотека LCD в MikroC PRO в части инициализации и предопределенных констант немного изменилась, поэтому для PRO это выглядит так:
Код:
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"
}
  Ответить с цитированием
Старый 10.09.2012, 07:25   #1052   
Форумец
 
Сообщений: 5
Регистрация: 09.09.2012
Возраст: 85

dzer вне форума Не в сети
Петр, спасибо.
Еще вопрос, как сделать, чтобы комментарии на русском видеть?
Спасибо.
  Ответить с цитированием
Старый 10.09.2012, 08:05   #1053   
Форумец
 
Сообщений: 1,532
Регистрация: 19.02.2009
Возраст: 54
Записей в дневнике: 1

petrd вне форума Не в сети
Цитата:
Сообщение от dzer Посмотреть сообщение
Петр, спасибо.
Еще вопрос, как сделать, чтобы комментарии на русском видеть?
Спасибо.
Где? Какие комментарии?
  Ответить с цитированием
Старый 10.09.2012, 08:41   #1054   
Форумец
 
Сообщений: 5
Регистрация: 09.09.2012
Возраст: 85

dzer вне форума Не в сети
комментарии, post 46, в mikroC PRO.
Спасибо.
  Ответить с цитированием
Старый 10.09.2012, 09:09   #1055   
Форумец
 
Сообщений: 1,532
Регистрация: 19.02.2009
Возраст: 54
Записей в дневнике: 1

petrd вне форума Не в сети
Цитата:
Сообщение от dzer Посмотреть сообщение
комментарии, post 46, в mikroC PRO.
Спасибо.
А что с комментариями? В PRO c комментариями на русском языке все нормально, пишите сколько хотите, проблем нет.
  Ответить с цитированием
Старый 10.09.2012, 10:05   #1056   
Форумец
 
Сообщений: 5
Регистрация: 09.09.2012
Возраст: 85

dzer вне форума Не в сети
Все верно если писать самому.
А если смотреть уже написанный, к примеру post 46?
спасибо.
  Ответить с цитированием
Старый 10.09.2012, 11:15   #1057   
Форумец
 
Сообщений: 1,532
Регистрация: 19.02.2009
Возраст: 54
Записей в дневнике: 1

petrd вне форума Не в сети
Цитата:
Сообщение от dzer Посмотреть сообщение
Все верно если писать самому.
А если смотреть уже написанный, к примеру post 46?
спасибо.
Весь текст вижу нормально, копирую, вставляю, редактирую проблемы не понимаю. Картинку прилепите.
  Ответить с цитированием
Старый 10.09.2012, 12:10   #1058   
Форумец
 
Сообщений: 5
Регистрация: 09.09.2012
Возраст: 85

dzer вне форума Не в сети
Петр, извиняюсь.
Какая то чертовщина, вроде вместо русских были ?????
А сейчас все нормально.
спасибо.
  Ответить с цитированием
Старый 05.10.2012, 06:06   #1059   
Форумец
 
Сообщений: 88
Регистрация: 04.02.2011
Возраст: 46

Teeen вне форума Не в сети
Цитата:
Сообщение от petrd Посмотреть сообщение
Сюда надо низкоомные резисторы в качестве датчиков воткнуть. В DS на L298N показано. А сигнал с резисторов - на компаратор или на АЦП и делай с ним "че хошь"
Здравствуйте petrd!
Смысл понял, ни разу не делал АЦП и не использовал компараторы на PIC. Покажите пожалуйста любой пример кода для подобного анализа. Благодарю! С уважением, Дмитрий.

Нашел вот это, подойдет? http://kazus.ru/nuke/pic/parts/AN546.pdf
  Ответить с цитированием
Старый 09.10.2012, 21:01   #1060   
Форумец
 
Сообщений: 1,532
Регистрация: 19.02.2009
Возраст: 54
Записей в дневнике: 1

petrd вне форума Не в сети
Цитата:
Сообщение от Teeen Посмотреть сообщение
Здравствуйте petrd!
Смысл понял, ни разу не делал АЦП и не использовал компараторы на PIC. Покажите пожалуйста любой пример кода для подобного анализа. Благодарю! С уважением, Дмитрий.

Нашел вот это, подойдет? http://kazus.ru/nuke/pic/parts/AN546.pdf
Да, пойдет.
АЦП в МК штука интересная. Код работы с АЦП в принципе простой, но надо знать сам принцип работы АЦП и особенности его реализации. Есть в АЦП 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.
  Ответить с цитированием
Старый 26.10.2012, 05:08   #1061   
Форумец
 
Сообщений: 88
Регистрация: 04.02.2011
Возраст: 46

Teeen вне форума Не в сети
petrd, благодарю!
  Ответить с цитированием
Старый 15.11.2012, 04:12   #1062   
Форумец
 
Сообщений: 9
Регистрация: 15.11.2012

Dima_Jey вне форума Не в сети
Здравствуйте Петр! Буду очень презнателен если вы поможите мне. Работаю с мПаскалем имеется PIC12f629 . Подскажите пожалуйста как можно инвертировать вход например : GP1 и как организовать прерывание по этому входу.
  Ответить с цитированием
Старый 15.11.2012, 07:35   #1063   
Форумец
 
Сообщений: 9
Регистрация: 15.11.2012

Dima_Jey вне форума Не в сети
petrd, )
  Ответить с цитированием
Старый 15.11.2012, 18:55   #1064   
Форумец
 
Сообщений: 1,532
Регистрация: 19.02.2009
Возраст: 54
Записей в дневнике: 1

petrd вне форума Не в сети
Цитата:
Сообщение от Dima_Jey Посмотреть сообщение
Работаю с мПаскалем имеется PIC12f629 . Подскажите пожалуйста как можно инвертировать вход например : GP1 и как организовать прерывание по этому входу.
Вход нельзя инвертировать, можно инвертировать сигнал на этом входе.
Код:
GPIO.1 := 1- GPIO.1;
Что Вы хотите от GP1? Если прерывание не будет использоваться для вывода из сна, то это плохая идея. Лучше использовать GP2/INT.
  Ответить с цитированием
Старый 16.11.2012, 09:16   #1065   
Форумец
 
Сообщений: 9
Регистрация: 15.11.2012

Dima_Jey вне форума Не в сети
Я прошу прощения, я только начал изучать М.К. Дело в том, что ик приёмник подаёт положительный сигнал, и отключает его только при наличии сигнала. Можно осмелится вас попросить простой пример использования прерывания по входу (пусть GP2) на паскале.
  Ответить с цитированием
Старый 16.11.2012, 09:39   #1066   
Форумец
 
Сообщений: 1,532
Регистрация: 19.02.2009
Возраст: 54
Записей в дневнике: 1

petrd вне форума Не в сети
Цитата:
Сообщение от Dima_Jey Посмотреть сообщение
Я прошу прощения, я только начал изучать М.К. Дело в том, что ик приёмник подаёт положительный сигнал, и отключает его только при наличии сигнала. Можно осмелится вас попросить простой пример использования прерывания по входу (пусть GP2) на паскале.
Почему Паскаль, а не Си? Ибо помощи мало будет, придется самостоятельно осваивать.

"Дело в том, что ик приёмник подаёт положительный сигнал, и отключает его только при наличии сигнала." Представьте, что вы посторонний человек - понять эту фразу ему по силам будет? И в конце "контрольный в голову" - прерыванием GP2 - как, что, для чего, что от него ожидается?
Излагайте мысли понятно.
  Ответить с цитированием
Старый 16.11.2012, 09:45   #1067   
Форумец
 
Сообщений: 9
Регистрация: 15.11.2012

Dima_Jey вне форума Не в сети
Я паскаль знаю, давно и неплохо. Всвоё время работал на борланде
  Ответить с цитированием
Старый 16.11.2012, 09:46   #1068   
Форумец
 
Сообщений: 9
Регистрация: 15.11.2012

Dima_Jey вне форума Не в сети
что -то вроди этого :
  Ответить с цитированием
Старый 16.11.2012, 09:47   #1069   
Форумец
 
Сообщений: 9
Регистрация: 15.11.2012

Dima_Jey вне форума Не в сети
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.
По нажатию кнопки загорается светодиод, а именно прерывание нужно - потому, что в теле программы будет другой алгоритм.
  Ответить с цитированием
Старый 16.11.2012, 09:50   #1070   
Форумец
 
Сообщений: 9
Регистрация: 15.11.2012

Dima_Jey вне форума Не в сети
Хочу заметить это приблизительный пример, меня интересует только однит фактор: срабатывание прерывания по нажатию кнопки (приходу положительного сигнала на GP1)
  Ответить с цитированием
Старый 16.11.2012, 14:36   #1071   
Форумец
 
Сообщений: 1,532
Регистрация: 19.02.2009
Возраст: 54
Записей в дневнике: 1

petrd вне форума Не в сети
Цитата:
Сообщение от Dima_Jey Посмотреть сообщение
Хочу заметить это приблизительный пример, меня интересует только однит фактор: срабатывание прерывания по нажатию кнопки (приходу положительного сигнала на GP1)
Повторюсь, не стоит по GP1 прерывание делать. Вариант один - INT.
Код:
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;          //глобальное разрешение прерываний 
........
как-то так
  Ответить с цитированием
Старый 16.11.2012, 16:59   #1072   
Форумец
 
Сообщений: 9
Регистрация: 15.11.2012

Dima_Jey вне форума Не в сети
Да сработало, но только один раз, а потом не реагирует на нажатие. (Нажал первыйраз - светодиод зажёгся и погас как надо, нажал второй раз светодиот не загорается) Немугу понять, что обнулить надо.

Последний раз редактировалось Dima_Jey; 16.11.2012 в 21:22.
  Ответить с цитированием
Старый 17.11.2012, 15:52   #1073   
Форумец
 
Сообщений: 9
Регистрация: 15.11.2012

Dima_Jey вне форума Не в сети
Всё я разобрался, надо было использовать подтяжку. Спасибо за помощь
  Ответить с цитированием
Старый 27.11.2012, 10:54   #1074   
Форумец
 
Сообщений: 88
Регистрация: 04.02.2011
Возраст: 46

Teeen вне форума Не в сети
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?
Благодарю за ответы!
  Ответить с цитированием
Старый 28.11.2012, 07:05   #1075   
Форумец
 
Сообщений: 1,532
Регистрация: 19.02.2009
Возраст: 54
Записей в дневнике: 1

petrd вне форума Не в сети
Цитата:
Сообщение от Teeen Посмотреть сообщение
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?
Благодарю за ответы!
1. Модуль LCD - это железный драйвер непосредственного управления ЖКИ, например, часто используется в брелоках автосигнализаций с ЖКИ, скорее всего Вам он не нужен. Только если Вы решите какой-то ИЖЦ 5-4/8 к нему прицепить.
2. Да.
  Ответить с цитированием
Старый 29.12.2012, 18:50   #1076   
Форумец
 
Сообщений: 2
Регистрация: 07.12.2012
Возраст: 51

enganepe вне форума Не в сети
Прошу прощения, может я повторюсь. Как реализовать в MikroC частотомер на Pic? Насколько я понял, необходимо задействовать один из таймеров, например TMR0. Настроить его на прерывания с определенным временным интервалом, возможно так:
OPTION_REG = ??? (что сюда писать, какую величину?),
затем использовать один из портов на вход для подсчета входящих импульсов и в нужный момент (который наступает через определенное число прерываний таймера) вывести результат вычислений (количество вошедших импульсов за промежуток времени, то-бишь в Гц) на LCD. Как все это решить программно, прошу помочь.
Еще, скачал программу для расчетов таймеров PIC Timer Calculator, помогите и с ней разобраться. Всем спасибо! Скоро Новый Год!
  Ответить с цитированием
Старый 29.12.2012, 19:08   #1077   
Форумец
 
Сообщений: 1,532
Регистрация: 19.02.2009
Возраст: 54
Записей в дневнике: 1

petrd вне форума Не в сети
Цитата:
Сообщение от enganepe Посмотреть сообщение
Прошу прощения, может я повторюсь. Как реализовать в MikroC частотомер на Pic? Насколько я понял, необходимо задействовать один из таймеров, например TMR0. Настроить его на прерывания с определенным временным интервалом, возможно так:
OPTION_REG = ??? (что сюда писать, какую величину?),
затем использовать один из портов на вход для подсчета входящих импульсов и в нужный момент (который наступает через определенное число прерываний таймера) вывести результат вычислений (количество вошедших импульсов за промежуток времени, то-бишь в Гц) на LCD. Как все это решить программно, прошу помочь.
Еще, скачал программу для расчетов таймеров PIC Timer Calculator, помогите и с ней разобраться. Всем спасибо! Скоро Новый Год!
По частотомеру здесь гляньте:
http://www.microchip.su/showthread.p...F2%EE%EC%E5%F0
А с калькулятором, что не понятно? Спрашивайте.
  Ответить с цитированием
Старый 30.12.2012, 23:14   #1078   
Форумец
 
Сообщений: 2
Регистрация: 07.12.2012
Возраст: 51

enganepe вне форума Не в сети
Спасибо!
  Ответить с цитированием
Старый 07.01.2013, 13:11   #1079   
TERminaTOR
 
Аватар для Globuses
 
Сообщений: 6,540
Регистрация: 05.04.2007
Возраст: 51

Globuses вне форума Не в сети
Проблема!
Собрал программатор (JDM) по схеме
http://radiokot.ru/circuit/digital/pcmod/13/01.gif
Для программирования взял оболочку winpic800
Не пошло
Потом нашел оболочку winpicpgm. Она позволяет автоопределить программатор, "прозвонить" его отдельными сигналами. Странное дело, прозвонка идет, а автоопределение - нет. Т.е. сигналы с порта через программатор к процессору проходят, но программа почему-то не может определить программатор и процессор.
Работу программатора тестером проверял. Сигналы через него идут. Но результат нулевой. Даже снижал скорость передачи данных. Без толку. Вот и думаю. В чем засада...
Может мой путь - тупиковый и есть заведомо рабочие схемы, которые можно собрать и не париться?
ЗЫ по схеме сейчас посмотрел - тот же Экстра пик. С той лишь разницей, что в качестве логического элемента я применил К561ЛА7. Но там все логические сигналы не хуже проходят.

Последний раз редактировалось Globuses; 07.01.2013 в 13:29.
  Ответить с цитированием
Старый 07.01.2013, 14:47   #1080   
TERminaTOR
 
Аватар для Globuses
 
Сообщений: 6,540
Регистрация: 05.04.2007
Возраст: 51

Globuses вне форума Не в сети
Поправка! После плясок с бубном программатор в ICProg стал детектироваться, но не смотря на установку больших задержек при передаче данных, проц не шьется, хотя тестирование подтвердило работоспособность программатора (т.е. сигналы до проца проходят). Что еще проверить надо?
  Ответить с цитированием
Поиск в теме: 



Быстрый переход:

  Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Support by DrIQ & Netwind