Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

problema PWM pic16

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[1] problema PWM pic16

Messaggioda Foto Utentelorenzo01 » 15 feb 2020, 19:28

buongiorno, ho bisogno di ottenere un segnale PWM da un pic16f1773, usando mplab x per quanto ne so non di sono istruzioni apposite quindi ho provato senza successo a farlo a "mano" caricando i valori sui vari registri del modulo ccp utilizzandolo in modalità PWM
Codice: Seleziona tutto
#pragma config FOSC = HS        // Oscillator Selection Bits (HS Oscillator, High-speed crystal/resonator connected between OSC1 and OSC2 pins)
#pragma config WDTE = OFF       // Watchdog Timer Enable (WDT disabled)
#pragma config PWRTE = OFF      // Power-up Timer Enable (PWRT disabled)
#pragma config MCLRE = ON       // MCLR Pin Function Select (MCLR/VPP pin function is MCLR)
#pragma config CP = OFF         // Flash Program Memory Code Protection (Program memory code protection is disabled)
#pragma config BOREN = ON       // Brown-out Reset Enable (Brown-out Reset enabled)
#pragma config CLKOUTEN = ON    // Clock Out Enable (CLKOUT function is enabled on the CLKOUT pin)
#pragma config IESO = ON        // Internal/External Switchover Mode (Internal/External Switchover Mode is enabled)
#pragma config FCMEN = ON       // Fail-Safe Clock Monitor Enable (Fail-Safe Clock Monitor is enabled)

#pragma config WRT = OFF        // Flash Memory Self-Write Protection (Write protection off)
#pragma config PPS1WAY = ON     // Peripheral Pin Select one-way control (The PPSLOCK bit cannot be cleared once it is set by software)
#pragma config ZCD = OFF        // Zero-cross detect disable (Zero-cross detect circuit is disabled at POR)
#pragma config PLLEN = OFF      // Phase Lock Loop enable (4x PLL is always enabled)
#pragma config STVREN = ON      // Stack Overflow/Underflow Reset Enable (Stack Overflow or Underflow will cause a Reset)
#pragma config BORV = LO        // Brown-out Reset Voltage Selection (Brown-out Reset Voltage (Vbor), low trip point selected.)
#pragma config LPBOR = OFF      // Low-Power Brown Out Reset (Low-Power BOR is disabled)
#pragma config LVP = ON         // Low-Voltage Programming Enable (Low-voltage programming enabled)

#include <xc.h>
#define _XTAL_FREQ 20000000
void main(void){

while(1){
TRISC = 0b00000000;
T2CON = 0b11000000;
T2CLKCON = 0b00000010;
T2PR = 154;
PIR2 = 0;
CCPTMRS1 = 0b00000000;
CCP1CON = 0b10111100;
RC4PPS = 0b00010101;
CCPR1L = 0b11111111;
CCPR1H = 0b00001001;
    }
}

vi ringrazio in anticipo per le eventuali risposte

Il codice va postato utilizzando gli appositi tag (pulsante "code") altrimenti è anche difficile da leggere;
ora ho modificato io, ma valga per la prossima volta, grazie.
Ultima modifica di Foto Utenteclaudiocedrone il 16 feb 2020, 0:20, modificato 2 volte in totale.
Motivazione: Inserito codice tra gli appositi tag.
Avatar utente
Foto Utentelorenzo01
5 3
 
Messaggi: 15
Iscritto il: 16 ott 2019, 16:37

0
voti

[2] Re: problema PWM pic16

Messaggioda Foto Utentelelerelele » 17 feb 2020, 12:00

per cominciare mi pare che non hai settato il registro analogico ANSEL, a volte se non lo setti da problemi, non consente l'uscita.

saluti.
Avatar utente
Foto Utentelelerelele
4.899 3 7 9
Master
Master
 
Messaggi: 5505
Iscritto il: 8 giu 2011, 8:57
Località: Reggio Emilia

0
voti

[3] Re: problema PWM pic16

Messaggioda Foto Utentelorenzo01 » 17 feb 2020, 13:31

Nel codice che ho postato non c'è ma nelle varie prove che ho eseguito l'ho impostato correttamente portandolo a zero
Avatar utente
Foto Utentelorenzo01
5 3
 
Messaggi: 15
Iscritto il: 16 ott 2019, 16:37

0
voti

[4] Re: problema PWM pic16

Messaggioda Foto UtenteEcoTan » 17 feb 2020, 14:30

Le istruzioni nel loop sotto la While, impostano sempre gli stessi registri sempre con gli stessi valori, pertanto andrebbero messe prima in modo che vengano eseguite una volta sola (magari non è importante ma di solito si fa così).
Avatar utente
Foto UtenteEcoTan
7.720 4 12 13
Expert EY
Expert EY
 
Messaggi: 5424
Iscritto il: 29 gen 2014, 8:54

0
voti

[5] Re: problema PWM pic16

Messaggioda Foto Utentelelerelele » 23 feb 2020, 10:43

possiamo escludere che non ci sia clock?

comunque la via maestra è prendersi il datsheets, settare tutti i registri relativi al PWM.

saluti
Avatar utente
Foto Utentelelerelele
4.899 3 7 9
Master
Master
 
Messaggi: 5505
Iscritto il: 8 giu 2011, 8:57
Località: Reggio Emilia

0
voti

[6] Re: problema PWM pic16

Messaggioda Foto Utenteivanpascolo » 19 mar 2020, 23:45

Perché non inizi ad utilizzare il plugin MCC di microchip? Generare un PWM è davvero semplice.
Avatar utente
Foto Utenteivanpascolo
20 3
New entry
New entry
 
Messaggi: 71
Iscritto il: 29 set 2014, 20:44


Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 28 ospiti