Например TDA7294

Форум РадиоКот :: Просмотр темы - ШИМ на PIC16F876A
Форум РадиоКот
https://radiokot.ru/forum/

ШИМ на PIC16F876A
https://radiokot.ru/forum/viewtopic.php?f=58&t=153388
Страница 1 из 1

Автор:  dexart12 [ Ср мар 14, 2018 08:35:16 ]
Заголовок сообщения:  ШИМ на PIC16F876A

Всем, добрый день! Подскажите в чём проблема в коде, написанном на Си в MPLab. Компилятор XC8 1.34 (крякнутый). Может ли это быть связано с тем, что MPLab не куплена и что такая херь только в платной версии работать будет?

Код:
[color=#008000]
/*
 * File:   pwm.c
 * Author: dexart12
 *
 * Created on 14 march 2018 y., 9:08
 */

#include <xc.h>
#define _XTAL_FREQ 20000000
#define TMR1PRESCALE 8
#define OUT RC2

// CONFIG
#pragma config FOSC = HS       
#pragma config WDTE = OFF   
#pragma config PWRTE = OFF   
#pragma config BOREN = ON     
#pragma config LVP = OFF     
#pragma config CPD = OFF     
#pragma config WRT = OFF       
#pragma config CP = OFF       

unsigned long CCPR = 0;
const unsigned long total = 12500;
unsigned long current = 0.5 * total;


// прерывание

void interrupt tmr1isr() {
if (CCP1IF == 1) {
   if (OUT == 1) {
      OUT = 0;
      CCPR = total - current;
   }
   else {
      OUT = 1;
      CCPR = current;
   }
   
// ставим значение ССРR в ССР модули регистров

   CCPR1H = CCPR >> 8;
   CCPR1L = CCPR;
   CCP1IF = 0;
   }

}


//главная функция

void main() {

   TRISC = 0; //выходы порта С выходы
   PORTC = 0; // порты С низкий уровень
   
   T1CON = 0b00110000; // Выключен таймер 1 и установлен прскалер 8
   TMR1H = 0; //очищаем регистры
   TMR1L = 0; // очищаем регистры
   
   CCP1CON = 0x0b; //установка ССР модуля сравнение
   CCPR = 0; // установка нуля
   CCP1IF = 0; // очистим флаг прерываний
   CCP1IE = 1; // разрешим прерывание ССР1
   INTCON = 0xC0; // разрешение глобальных и переферийных прерваний
   T1CON = 0b00110001; // запуск таймера 1
   
   while(1) {
   
   current = total * 0.5;// 50% цикл
   __delay_ms(5000); // задержка 5 сек
   current = total * 0.1; // 10% цикл
   __delay_ms(5000); // задержка 5 сек
      
         }
   
   }
   
   
[/color]

Вложения:
Комментарий к файлу: Выдает такие ошибки
pwm.jpg [121.2 KiB]
Скачиваний: 412

Автор:  Vano79 [ Ср мар 14, 2018 09:12:22 ]
Заголовок сообщения:  Re: ШИМ на P I C 1 6 F 8 7 6 A

MPLab бесплатный продукт. На вскидку привести все типы переменных в соответствие.

Автор:  pyzhman [ Ср мар 14, 2018 11:51:12 ]
Заголовок сообщения:  Re: ШИМ на PIC16F876A

Дело не в молотке, дело в руках.

Автор:  Аlex [ Ср мар 14, 2018 14:20:49 ]
Заголовок сообщения:  Re: ШИМ на PIC16F876A

дело в руках.
В крякнутых ...

Автор:  Vano79 [ Ср мар 14, 2018 15:00:33 ]
Заголовок сообщения:  Re: ШИМ на PIC16F876A

XC8 1.38 и такое ..овно ест, хоть и предупреждениями.

Автор:  Аlex [ Ср мар 14, 2018 18:37:45 ]
Заголовок сообщения:  Re: ШИМ на PIC16F876A

"Нечего на зеркало пенять, коли рожей не вышел" (c)

А вот так :
Цитата:
Код:
const unsigned long total = 12500;
unsigned long current = 0.5 * total;

Код:
current = total * 0.5;
current = total * 0.1;

пишут только говнокодеры-ардуинщики :facepalm:

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/