forum.mcontrollers.com - hlavní stránka forum.mcontrollers.com - fórum

 

.: fórum - hlavní stránka :.
Technology Stronghold by Rudolf Vesely
How to build Microsoft System Center hosted cloud series
FAQFAQ HledatHledat Seznam uživatelůSeznam uživatelů Uživatelské skupinyUživatelské skupiny RegistraceRegistrace
ProfilProfil StatistikaStatistika Soukromé zprávySoukromé zprávy PřihlášeníPřihlášení

 
PIC12F1572 ADC to PWM

 
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> Microchip
 
Skyline35
Účastník
Účastník


Založen: 4.6.2016
Příspěvky: 10
Bydliště: Budmerice, Slovakia

PříspěvekZaslal: 16 říjen 2018, 15:46    Předmět: PIC12F1572 ADC to PWM Citovat

Prajem krásny slnečný,
chcem sa podeliť o skúsenosti s PIC12F1572.Potreboval som urobiť prevodník ADC na PWM, trvalo to síce dlho, ale rozchodil som to a možno to niekto použije ako časť svojho kódu... Ak by niekto našiel nejaké chyby, poprípade vedel existujúci kód vylepšiť, zmenšiť alebo čokoľvek, určite sa záujemci potešia.
Princíp tohto kódu je jednoduchý, načíta si napätie na vstupe RA2 a prevedie to bez konverzie na PWM výstupu RA5, ideálne na riadenie napríklad nejakého ventilátora termistorom (v mojom prípade)

kód:

#include <pic12f1572.h>
#include <stdio.h>


// CONFIG1
#pragma config FOSC = INTOSC    //  (INTOSC oscillator; I/O function on CLKIN pin)
#pragma config WDTE = OFF       // Watchdog Timer Enable (WDT disabled)
#pragma config PWRTE = OFF      // Power-up Timer Enable (PWRT disabled)
#pragma config MCLRE = OFF      // MCLR Pin Function Select (MCLR/VPP pin function is digital input)
#pragma config CP = OFF         // Flash Program Memory Code Protection (Program memory code protection is disabled)
#pragma config BOREN = OFF      // Brown-out Reset Enable (Brown-out Reset disabled)
#pragma config CLKOUTEN = OFF   // Clock Out Enable (CLKOUT function is disabled. I/O or oscillator function on the CLKOUT pin)

// CONFIG2
#pragma config WRT = OFF        // Flash Memory Self-Write Protection (Write protection off)
#pragma config PLLEN = OFF      // PLL Enable (4x PLL disabled)
#pragma config STVREN = ON     // Stack Overflow/Underflow Reset Enable (Stack Overflow or Underflow will not cause a Reset)
#pragma config BORV = HI        // Brown-out Reset Voltage Selection (Brown-out Reset Voltage (Vbor), high trip point selected.)
#pragma config LPBOREN = OFF    // Low Power Brown-out Reset enable bit (LPBOR is disabled)
#pragma config LVP = OFF        // Low-Voltage Programming Enable (High-voltage on MCLR/VPP must be used for programming)

void ADC_result()
{
    ADCON0bits.GO=1;                // ADC start conversion
    while(ADCON0bits.GO);           // wait for conversion done
}

void PWM()
{
    PWM1CLKCON = 0b00000001;          // Set HFINTOSC clock, no prescaler.
    PWM1CON = 0b01100000;             // PWM control (standard mode).
    PWM1PH = 0;                       // Phase.
    PWM1PR = 2047;                    // Period.
    APFCONbits.P1SEL = 1;             // PWM1 on RA5.
    PWMENbits.PWM1EN_A=1;
}

void ADC_set()
{
    ANSELAbits.ANSA2=1;             // Analog input on PIN RA2
    ADCON0bits.CHS=0b10;            // Analog channel RA2
    ADCON1bits.ADFM=1;              // ADC set to ADRESL
    ADCON0bits.ADON=1;              // ADC enabled
    ADCON1bits.ADCS=0b11;           // ADC conversion clock select as FRC
}

void main(void)

{
    TRISAbits.TRISA=0b100;          // I/O RA2 input
    CM1CON0bits.C1ON=0;             // Disable Comaprator
    OSCCON = 0b01111010;            // 16 Mhz oscillator.
    PWM();
    ADC_set();
   
while(1)
    {
        ADC_result();
        PWM1DC=ADRES;
        PWMLDbits.PWM1LDA_A=1;
    }
}

_________________
WA +421903718119
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
 

Zobrazit příspěvky z předchozích:   
Zobrazit předchozí téma :: Zobrazit následující téma  
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> Microchip Časy uváděny v GMT + 2 hodiny
 
Strana 1 z 1
Přejdi na:  
Můžete přidat nové téma do tohoto fóra.
Můžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Můžete k příspěvkům připojovat soubory
Můžete stahovat a prohlížet přiložené soubory
 



Num Lock Holder - app to hold Numlock
Copyright © 2018 Rudolf Veselý, mcontrollers.com.
Je zakázáno používat části tohoto webu bez souhlasu autora. || Powered by phpBB © 2001, 2002 phpBB Group - with RedSquare DoubleJ(Jan Jaap)