Forum: Mikrocontroller und Digitale Elektronik PWM mit nem PIC (PIC18F1230 ) , Anfänger!


von Burghard B. (punami)


Lesenswert?

Hi,

Ich brauch mal ne Schritt für Schritt beschreibung, wie ich ne PWM mit 
nem PIC ans laufen bring.

-Wie richte ich die ein?
-wie leg ich die frequenz fest?
-Wie leg ich die Active/down Time fest?

usw...

(Am besten mit PIC-C Beispiel, arbeite mit dem MPLAB, C18 compiler)

Mfg

(Bitte KEINE Nachrichten wie "das geht mit nem AT-xy viel besser"... Ich 
komm mit PIC's bisher gut zurecht.)

von Burghard B. (punami)


Lesenswert?

Keiner da der schon ma sowas gemacht hat?

von Dirk W. (Gast)


Lesenswert?


von Burghard B. (punami)


Lesenswert?

nun ja, is ja ganz nett, aber der 18F1230 hat nen anderen aufbau der 
PWM, er besitzt NUR PWM kein CCP und auch einen speziellen Timer für die 
PWM, soweit ich bis jetzt weiß.

Gibts keinen der schon ma mit dem Ding gearbeitet hat und mir mal nen 
Code-Schnippsel oder sowas dazu schicken könnte?

von morph (Gast)


Lesenswert?

beim c18 sind ganze bibliotheken dabei, eine davon sogar für pwm ;)

von Gerhard. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Burghard,

ich habe leider im Augenblick keine Zeit (Weil ich in der Arbeit bin; -) 
) mich damit zu beschaeftigen. Ausserdem habe ich selber noch nicht mit 
diesem speziellen PIC gearbeitet.

Das Source Program ist leider speziell auf CCS eingerichtet und zeigt 
nicht an wie die einzelnen SFRs eingestellt werden muessen. Im List File 
kann man die Konfigurierung natuerlich nachvollziehen. Ich Lege Dir aber 
ein Beispiel bei vom CCS Compiler mit dem List file. Anhand des list 
files kannst Du den Chip setup verfolgen und bei Dir anwenden. Ich hoffe 
das hilft Dir ein bischen.

Gruss,
Gerhard

von Burghard B. (punami)


Lesenswert?

So, hab nun mal den ersten Cod egeschrieben, leider funzt der überhaupt 
nicht.

Ich denke der Fehler liegt irgendwo in der Konfiguration, den auf dem 
angeschlossenen Oszi seh ich überhaupt nichts. Normalerweise müsste ich 
doch auch wenn der PDCOL nicht gesetzt ist ein PWM-Signal sehen oder?

Auch hab ich mal probiert die PC0L PD0H manuell beide auf 0x11111111 
bzw. 0b00001111 zu setzen, was aber auch keine veränderung brachte.

Als letztes hab ich versucht an PORT RA0 und RA1 eine LED anzuschließen, 
die praktisch anzeigen sollte (blinken) das der PIC läuft. Ohne den 
ganzen PWM Kram gings auch, nur mit dem restlichen code nicht mehr...

#include "p18f1230.h"
#include "stdio.h"

void delay (void)

{
int i;
  while(i<100)
  {i++;}
}
void main()
        {
        int dc ;
        TRISB = 0 ;                     // set PORTB as output
        PORTB = 0 ;                     // clear PORTB
        TRISA = 0 ;                     // set PORTA as output
        PORTA = 0 ;                     // clear PORTA

        //PTCON1 = 0b01111100 ; //unused
        PTCON0 = 0b00000011 ; //configure: 1:1 Scale, Time base is 1:1, 
continuous up/down
        PWMCON0 = 0b01000111 ; //All PWM-Pins enable, PWM 0-2 in 
independent Mode
        PWMCON1 = 0b10000000 ; // PWM Timer active
        for(;;)                         // forever
                {
                for(dc = 0 ; dc < 256 ; dc++)//count the PDC-L upwards, 
PDC-H is ignored
                {
//PORTA = 0b11000000; Delay; (Die Test LED)
                PDC0L = dc;
//PORTA = =0; (Die Test LED)
                delay();
                }
                for(dc = 256 ; dc > 0 ; dc--)//count the PDC-L 
downwards, PDC-H is ignored
                {
                PDC0L = dc;
                delay();
                }
            }
    }

von Burghard B. (punami)


Lesenswert?

Hat keiner von euch ne Ahnung worans liegt? Das kann doch nicht so'n 
riesiges Problem sein.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.