Например TDA7294

 Форум РадиоКот • Просмотр темы - ШИМ на PIC16F627A
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Чт окт 18, 2018 02:32:54



Часовой пояс: UTC + 3 часа [ Летнее время ]


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 19 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: ШИМ на PIC16F627A
СообщениеДобавлено: Ср фев 21, 2018 08:39:55 
Родился

Зарегистрирован: Вс фев 18, 2018 00:44:11
Сообщений: 17
Рейтинг сообщения: 0
Доброе утро всем! Взял код программы из книги М. Предко по управлению яркостью светодиода. Написана в MPLab 8.92 компилятор PICC Lite.
Сначала схемку собрал в Протеусе, зашил, но светодиоды не загораются. Что делаю не так ?


Код:
[color=#408040]
#include <pic.h>
#if defined (_16F84)
#warning PIC16F84 selected
_CONFIG (0x03FF1);
flelifedefined(_16F627A)
#warning PIC16F627A with internal oscillator selected
_CONFIG(0x03F70);
<<else
#error Unsupported PICmicro MCU selected
#endif

//Global variable and constant
volatile int RTC = 0;
char PWMCycle;
char PWMDuty;
volatile int PWMLoop;
static bit trisLED @ (unsigned) &TRISB*8+1;//Bits control
static bit     LED @ (unsigned) &PORTB*8+1;
const int LEDon = 0; // Led on
const int LEDoff = 1;//Led off
// Interrupts

void interrupt tmr0_int(void)
{
   if (T0IF) {
           
         RTC++; //increment counter

            switch(PWMDuty) {
                case 0:
                     LED = LEDoff;
                     break;
               case 29:
                     LED = LEDon;
                     break;
               default:
                     if (PWMCycle <= PWMDuty)
                           LED = LEDon;
                     else
                           LED = LEDoff;
            }
            if (++PWMCycle == 30) {
                  PWMCycle = 0;
                  PWMLoop++;
            }
         }
T0IF = 0; //reset flag
}




// Main function

void main(void)
{

   OPTION_REG = 0x0D1;
   TMR0 = 0;
   T0IE = 1;
   GIE = 1;



   while (1==1) {

 if (PWMLoop ==2) {
      if (PWMDuty ==0)
         PWMDuty =29;
      else
         PWMDuty--;
      PWMLoop = 0;
   }
 }

}    
[/color]


Вложения:
Screenshot_1.jpg [94.96 KiB]
Скачиваний: 43


Последний раз редактировалось dexart12 Ср фев 21, 2018 13:08:16, всего редактировалось 2 раз(а).
Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: ШИМ на PIC16F627A
СообщениеДобавлено: Ср фев 21, 2018 09:42:33 
Друг Кота
Аватар пользователя

Карма: 79
Зарегистрирован: Вт мар 16, 2010 23:02:27
Сообщений: 8289
Откуда: ДОНЕЦК (ЮГО-ВОСТОК ua/DPR)
Рейтинг сообщения: 0
Я так понимаю ШИМ программный?
:roll:


Вернуться наверх
 Профиль  
 
JLCPCB, 10 прототипов ПП всего за $2 и 2 дня доставка!

Крупнейший производитель печатных плат в Китае, 300,000+ заказчиков, 10,000+ он-лайн заказов в день.

Рассчитайте цену онлайн:https://jlcpcb.com/quote

Не в сети
 Заголовок сообщения: Re: ШИМ на PIC16F627A
СообщениеДобавлено: Ср фев 21, 2018 09:56:44 
Родился

Зарегистрирован: Вс фев 18, 2018 00:44:11
Сообщений: 17
Рейтинг сообщения: 0
Я так понимаю ШИМ программный?
:roll:

Этого я сказать не могу, не отличаю. Кажется мне что аппаратный.


Вернуться наверх
 Профиль  
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $88 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Второй конкурс по дизайну печатных плат от PCBWay!
Не в сети
 Заголовок сообщения: Re: ШИМ на PIC16F627A
СообщениеДобавлено: Ср фев 21, 2018 10:10:17 
Друг Кота
Аватар пользователя

Карма: 54
Зарегистрирован: Вс июл 12, 2009 20:15:29
Сообщений: 6629
Откуда: Ижевск
Рейтинг сообщения: 0
Нужно подать питание.

_________________
Docendo discimus


Вернуться наверх
 Профиль WWW  
 
Более 10 000 000 оригинальных новых компонентов

Поставка электронных компонентов под ваш проект

Комплексные решения поставки электронных компонентов

Сэкономьте $30 при первом заказе на сумму боле $200 (только для посетителей нашего форума)
Не в сети
 Заголовок сообщения: Re: ШИМ на PIC16F627A
СообщениеДобавлено: Ср фев 21, 2018 11:18:46 
Родился

Зарегистрирован: Вс фев 18, 2018 00:44:11
Сообщений: 17
Рейтинг сообщения: 0
Нужно подать питание.


Объясните пожалуйста, как это сделать?

Добавлено after 34 minutes 57 seconds:
Доброе утро всем! Взял код программы из книги М. Предко по управлению яркостью светодиода. Написана в MPLab 8.92 компилятор PICC Lite.
Сначала схемку собрал в Протеусе, зашил, но светодиоды не загораются. Что делаю не так ?


#include <pic.h>
#if defined (_16F84)
#warning PIC16F84 selected
_CONFIG (0x03FF1);
flelifedefined(_16F627A)
#warning PIC16F627A with internal oscillator selected
_CONFIG(0x03F70);
<<else
#error Unsupported PICmicro MCU selected
#endif

//Global variable and constant
volatile int RTC = 0;
char PWMCycle;
char PWMDuty;
volatile int PWMLoop;
static bit trisLED @ (unsigned) &TRISB*8+1;//Bits control
static bit LED @ (unsigned) &PORTB*8+1;
const int LEDon = 0; // Led on
const int LEDoff = 1;//Led off
// Interrupts

void interrupt tmr0_int(void)
{
if (T0IF) {

RTC++; //increment counter

switch(PWMDuty) {
case 0:
LED = LEDoff;
break;
case 29:
LED = LEDon;
break;
default:
if (PWMCycle <= PWMDuty)
LED = LEDon;
else
LED = LEDoff;
}
if (++PWMCycle == 30) {
PWMCycle = 0;
PWMLoop++;
}
}
T0IF = 0; //reset flag
}




// Main function

void main(void)
{

OPTION_REG = 0x0D1;
TMR0 = 0;
T0IE = 1;
GIE = 1;



while (1==1) {

if (PWMLoop ==2) {
if (PWMDuty ==0)
PWMDuty =29;
else
PWMDuty--;
PWMLoop = 0;
}
}

}


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: ШИМ на PIC16F627A
СообщениеДобавлено: Ср фев 21, 2018 11:27:39 
Друг Кота
Аватар пользователя

Карма: 54
Зарегистрирован: Вс июл 12, 2009 20:15:29
Сообщений: 6629
Откуда: Ижевск
Рейтинг сообщения: 0
Светло-зелёным это чтобы глаза сломать...
Питание - массу на общий, +5в на питание микросхемы.

_________________
Docendo discimus


Вернуться наверх
 Профиль WWW  
 
Не в сети
 Заголовок сообщения: Re: ШИМ на PIC16F627A
СообщениеДобавлено: Ср фев 21, 2018 12:05:35 
Родился

Зарегистрирован: Вс фев 18, 2018 00:44:11
Сообщений: 17
Рейтинг сообщения: 0
Светло-зелёным это чтобы глаза сломать...
Питание - массу на общий, +5в на питание микросхемы.


Я извиняюсь за цвет, только зарегистрировался. Многое тут не понятно, где куда вставлять. А в коде самом всё нормально выходит? Не совсем понятно куда питание. Я подал же питание на RA5?. Куда еще надо?


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: ШИМ на PIC16F627A
СообщениеДобавлено: Ср фев 21, 2018 12:22:19 
Друг Кота
Аватар пользователя

Карма: 54
Зарегистрирован: Вс июл 12, 2009 20:15:29
Сообщений: 6629
Откуда: Ижевск
Рейтинг сообщения: 0
Батенька! На RA5 через резистор задается лог."1". А питание на микросхему подается на выводы GND - это масса и Vcc - +5в. Посмотрите, пожалуйста, даташит на микросхему и определитесь с ножками.

Добавлено after 2 minutes 40 seconds:
BOB51, как вам вангалевел?

_________________
Docendo discimus


Вернуться наверх
 Профиль WWW  
 
Не в сети
 Заголовок сообщения: Re: ШИМ на PIC16F627A
СообщениеДобавлено: Ср фев 21, 2018 12:33:04 
Друг Кота
Аватар пользователя

Карма: 79
Зарегистрирован: Вт мар 16, 2010 23:02:27
Сообщений: 8289
Откуда: ДОНЕЦК (ЮГО-ВОСТОК ua/DPR)
Рейтинг сообщения: 0
НУ..ДЫК...
НАЧИНАЮЩИЙ же - надо бысть поснисходительнее...
8)
К сожалению под Си я сам "в начинаюшших" - ежли б под ассемблером - тогды можно чего мявкнуть...
:(
Ну и POIC16F627...
Как - то весьма редкое зверьё ... В основном из этого подвида попадаются PIC16F628A - и памяти там побольше...
И проекты готовенькие "для поизучамс" у мня имеются...
:roll:


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: ШИМ на PIC16F627A
СообщениеДобавлено: Ср фев 21, 2018 12:52:37 
Родился

Зарегистрирован: Вс фев 18, 2018 00:44:11
Сообщений: 17
Рейтинг сообщения: 0
НУ..ДЫК...
НАЧИНАЮЩИЙ же - надо бысть поснисходительнее...
8)
К сожалению под Си я сам "в начинаюшших" - ежли б под ассемблером - тогды можно чего мявкнуть...
:(
Ну и POIC16F627...
Как - то весьма редкое зверьё ... В основном из этого подвида попадаются PIC16F628A - и памяти там побольше...
И проекты готовенькие "для поизучамс" у мня имеются...
:roll:


Ну я хочу реализовать ШИМ, не важно какой (аппаратный или программный) и не важно на каком PICе. Просто как это делается.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: ШИМ на PIC16F627A
СообщениеДобавлено: Ср фев 21, 2018 12:55:18 
Друг Кота
Аватар пользователя

Карма: 54
Зарегистрирован: Вс июл 12, 2009 20:15:29
Сообщений: 6629
Откуда: Ижевск
Рейтинг сообщения: 0
Это делается изменением скважности. Если это связано с видеоэффектами, то частота должна быть не менее 50-ти Гц.

_________________
Docendo discimus


Вернуться наверх
 Профиль WWW  
 
Не в сети
 Заголовок сообщения: Re: ШИМ на PIC16F627A
СообщениеДобавлено: Ср фев 21, 2018 13:45:39 
Опытный кот

Карма: 5
Зарегистрирован: Пн апр 11, 2011 11:08:52
Сообщений: 722
Рейтинг сообщения: 0
Код:
#if defined (_16F84)
  #warning PIC16F84 selected
  _CONFIG (0x03FF1);
  flelifedefined(_16F627A)
  #warning PIC16F627A with internal oscillator selected
  _CONFIG(0x03F70);
<<else
  #error Unsupported PICmicro MCU selected
#endif

что-то тут не то...

Добавлено after 8 minutes 37 seconds:
Код:
static bit trisLED @ (unsigned) &TRISB*8+1;//Bits control
static bit     LED @ (unsigned) &PORTB*8+1;
const int LEDon = 0; // Led on
const int LEDoff = 1;//Led off

Для начала я бы заменил на более читабельное, но не забываем о "чтение-модификация-запись":
Код:
#define LedOn PORTB &= 1;
#define LedOff PORTB |= 1;


Тогда вместо
Код:
LED = LEDoff;
LED = LEDon;

пишем
Код:
LedOn;
LedOff;


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: ШИМ на PIC16F627A
СообщениеДобавлено: Ср фев 21, 2018 14:41:15 
Потрогал лапой паяльник

Карма: 2
Зарегистрирован: Чт авг 08, 2013 02:06:54
Сообщений: 307
Рейтинг сообщения: 0
[uquote="pyzhman" ] ... вангалевел?[/uquote] Потрясающе :shock:


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: ШИМ на PIC16F627A
СообщениеДобавлено: Ср фев 21, 2018 14:46:58 
Друг Кота
Аватар пользователя

Карма: 54
Зарегистрирован: Вс июл 12, 2009 20:15:29
Сообщений: 6629
Откуда: Ижевск
Рейтинг сообщения: 0
Сам себя порой боюсь.

_________________
Docendo discimus


Вернуться наверх
 Профиль WWW  
 
Не в сети
 Заголовок сообщения: Re: ШИМ на PIC16F627A
СообщениеДобавлено: Ср фев 21, 2018 15:03:55 
Родился

Зарегистрирован: Вс фев 18, 2018 00:44:11
Сообщений: 17
Рейтинг сообщения: 0
Батенька! На RA5 через резистор задается лог."1". А питание на микросхему подается на выводы GND - это масса и Vcc - +5в. Посмотрите, пожалуйста, даташит на микросхему и определитесь с ножками.

Добавлено after 2 minutes 40 seconds:
BOB51, как вам вангалевел?



В Proteus нет такого. Там микроконтроллер идёт без Vdd и Vss...


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: ШИМ на PIC16F627A
СообщениеДобавлено: Ср фев 21, 2018 15:15:18 
Друг Кота
Аватар пользователя

Карма: 54
Зарегистрирован: Вс июл 12, 2009 20:15:29
Сообщений: 6629
Откуда: Ижевск
Рейтинг сообщения: 0
Прокол!...
"Зашил" это как?

_________________
Docendo discimus


Вернуться наверх
 Профиль WWW  
 
Не в сети
 Заголовок сообщения: Re: ШИМ на PIC16F627A
СообщениеДобавлено: Ср фев 21, 2018 15:19:01 
Родился

Зарегистрирован: Вс фев 18, 2018 00:44:11
Сообщений: 17
Рейтинг сообщения: 0
Прокол!...
"Зашил" это как?



Прошил


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: ШИМ на PIC16F627A
СообщениеДобавлено: Ср фев 21, 2018 15:34:19 
Друг Кота
Аватар пользователя

Карма: 54
Зарегистрирован: Вс июл 12, 2009 20:15:29
Сообщений: 6629
Откуда: Ижевск
Рейтинг сообщения: 0
Что прошил? Опишите сам процесс.

_________________
Docendo discimus


Вернуться наверх
 Профиль WWW  
 
Не в сети
 Заголовок сообщения: Re: ШИМ на PIC16F627A
СообщениеДобавлено: Ср фев 21, 2018 15:46:47 
Друг Кота
Аватар пользователя

Карма: 79
Зарегистрирован: Вт мар 16, 2010 23:02:27
Сообщений: 8289
Откуда: ДОНЕЦК (ЮГО-ВОСТОК ua/DPR)
Рейтинг сообщения: 0
Одноканальный аппаратный ШИМ можно соорудить на ПИКе с наличием Тimer2 и модуля CCP.
Собственно у 627-628-648 эти узлы имеются.
:roll:
А вот для программного ШИМ с относительно низкой частотой (этот же режим в динамической индикации основа для построения дисплея) можно любой МК использовать. До 8 каналов вполне удобная штука.
:hunger:
Берем частоту обновления 62Гц (легче делится)
Это длительность ВСЕЙ строки ~0,016 секунды
делим на количество каналов/позиций
Допустим 3
итого позиция длится 0,016/3=0,0053 секунды
Примитив ШИМ имеет 256 градаций 0-255
Следовательно 1 шаг ШИМ будет иметь длительность 0,0053/256=0,0000207 секунды.
Поокруглим для удобства (глазу данное абсолютно незаметно, а вот обработка проще)
итого:
шаг ШИМ 0,00002S
позиция = 0,00512S
строка = 0,01536
частота регенерации ~65,1Гц
:write:
Теперь собственно прожка... чего делает. (грубое описание).
Имеем генератор шага ШИМ 0,00002S
Счетчик шагов, счетчик позиций и три байта заданного уровня...
включаем текущий канал
запускаем счет на каждом шаге сравниваем инверсное содержимое счетчика с содержимым заданной для данного канала величины яркости
при совпадении отключаем индикацию
при исчерпании счетчика шагов отрабатываем следующую позицию
при исчерпании счетчика позиций поавторяем все сначала.
:roll:
Ессно в полном варианте там еще много "нюёнсов" добавить надо будет.
8)


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 19 ] 



Часовой пояс: UTC + 3 часа [ Летнее время ]


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y