PWM IC?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
SnickaarN
Inlägg: 33
Blev medlem: 23 maj 2010, 14:56:41

Re: PWM IC?

Inlägg av SnickaarN »

@sodjan Mjo jag kan hålla med om att jag vart lite ospecifik innan... Jo det går men känns lite waste att kasta bort en cog per pwm kanal
victor_passe
Inlägg: 2436
Blev medlem: 28 januari 2007, 18:45:40
Ort: Kungsbacka

Re: PWM IC?

Inlägg av victor_passe »

Du kan ju ta en cog till flera kanaler eller?
Nu kan jag inte SPIN men typ såhär:

Kod: Markera allt

unsigned int PWM[4],cntr=0;
while(1)
{
 if(cntr==PWM[0]) LED_0=0;
 if(cntr==PWM[1]) LED_1=0;
 if(cntr==PWM[2]) LED_2=0;
 if(cntr==PWM[3]) LED_3=0;
 cntr++;
 if(cntr==256)
 {
  cntr=0;
  led_0=1;
  led_1=1;
  led_2=1;
  led_3=1;
 }
}
Sedan är det bara att lägga in fler kanaler efter tycke.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: PWM IC?

Inlägg av sodjan »

> Jo det går men känns lite waste att kasta bort en cog per pwm kanal

Måste du/man det ?
Jag höll på med lite PIC kod för något år sedan där jag hade ca 30 PWM
kanaler på en standard PIC18. Det vore lite konstigt om en av processorerna
(COG'arna ?) i en propeller inte skulle fixa att hantara mer än *1* PWM kanal.
Användarvisningsbild
Tripp
Inlägg: 397
Blev medlem: 29 januari 2004, 08:14:39
Ort: Tullinge
Kontakt:

Re: PWM IC?

Inlägg av Tripp »

Provides up to 8 channels of fast PWM output per cog, generated by the Propeller's video circuitry.
http://obex.parallax.com/objects/359/
bearing
Inlägg: 11676
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: PWM IC?

Inlägg av bearing »

En fråga utanför ämnet till er som har erfarenhet av "the Propeller's video circuitry" - kan man få de åtta PWM-kanalerna att ha olika faslägen? alltså att varje kanals första flank är förskjuten 45° (=360/8) grader i förhållande till tidigare flank?

Eller kommer alla kanalers första flank samtidigt?
Användarvisningsbild
BEEP
EF Sponsor
Inlägg: 1593
Blev medlem: 21 januari 2006, 16:57:56
Ort: Mölndal

Re: PWM IC?

Inlägg av BEEP »

victor_passe skrev:Nu kan jag inte SPIN men typ såhär:
Skulle väl se ut så här någonting i SPIN.

DimLeds.spin

Kod: Markera allt

CON
  PINMASK_LEDS = %1111                  ' Pin 3..0
  
VAR
  long stack[32]                        ' Ändras till lämplig storlek.
  byte channel[4]
     
PUB Start           
  cognew(DimLeds,@stack)

PUB SetDim(x,value)
  channel[x] := value

PRI DimLeds | cntr
  dira |= PINMASK_LEDS  
  cntr:=0   
  repeat                                ' repeat forever and ever ...
    if(cntr=>channel[0])
      outa[0]:=0
    if(cntr=>channel[1])
      outa[1]:=0
    if(cntr=>channel[2])
      outa[2]:=0
    if(cntr=>channel[3])
      outa[3]:=0
    cntr++         
    if(cntr==256)
      cntr:=0
      outa[0]:=1
      outa[1]:=1
      outa[2]:=1
      outa[3]:=1                     



Provkörning.

DimLeds_Demo.spin

Kod: Markera allt

CON
  _clkmode = xtal1 + pll16x
  _xinfreq = 5_000_000

OBJ
  dl : "DimLeds"
  rr : "RealRandom"
  
PUB Main | ran_led,ran_1,ran_2,i
  dl.Start
  rr.Start
  repeat
    ran_led := rr.Random // 4   
    ran_1   := rr.Random // 256
    ran_2   := rr.Random // 256     
    repeat i from ran_1 to ran_2         
      dl.SetDim(ran_led,i)
      waitcnt(160_000+cnt)
          
Skriv svar