3 pwm li pic.

Başlatan vedo35, 25 Mart 2015, 12:47:05

vedo35

Arkadaslar ben gooldan 3 pwm li pic arastirirken asagidaki gibi bir pic buldum ama datasheetinde "Two Capture, Compare, PWM (CCP) modules"oldugu yaziyor ama daha asagidada 4 tane oldugu yaziyor. Hangisi dogru kafam karisti. Sizce bi pic i rgb led deneyinde kullanabilirimiyim? Selamlar.

http://ww1.microchip.com/downloads/en/DeviceDoc/41419A.pdf
Biliyormusun dedi, ben ne yaptiysam kader icabi yaptim dedi. Ben gene sustum.... Kimbilir sende belki kaderin memurusun vazifeni yapiyorsun dedi.

polleme

Soft PWM ile yapabilirsiniz. Bu durumda PIC'in hiç PWM desteği olmasa bile sorun çıkmaz.

ibocakir

PIC olması şart değilse atmega328'i deneyebilirsiniz. 6 adet donanımsal pwm vardı sanırım.

polleme


iyildirim

@vedo35,

Kafa karıştıran PWM modüllerinin, Full Bridge, Half bridge gibi özellikler için farklı isimlendirilmesi. 
Farklı duty ve isterseniz frekans da  donanımsal  3 kanal PWM üretebilirsiniz.

vedo35

Valla iyi soyluyorsunuzda bende oyle dusundugunuz gibi profesyonel programci degilim. CCS ile idare etmeye calisiyorum. Atmegadan hic anlamam. Zar zor pic ogrenmeye calisiyoruz. Yas oldu 42  kafada eskisi gibi basmiyor.  Basit olarak bir yerlerden kopylaya yapistir ve tuyolari alip koyuyuorum aksilik cikarsa sizlere soruyorum. Yani o dediginiz rgb icin yapilmis yazilimsal 3 kanal pwm ornegi varsa surada gariplerde ( benim gibi) ogrensin size dua etsin..  :-[ ;D
Biliyormusun dedi, ben ne yaptiysam kader icabi yaptim dedi. Ben gene sustum.... Kimbilir sende belki kaderin memurusun vazifeni yapiyorsun dedi.

ferit06

#6
Şöyle bir şey var deneyebilirsiniz  Protonda yazıldı

Device 12F675
Config intrc_osc_noclkout, wdt_OFF, mclre_on, boden_off

Declare Xtal 4
#define OSCCAL_1K 1   ' 

CMCON= 7
GPIO=0
ANSEL    = %0001000    '  diğerleri digital
INTCON=%00000000        'genel interrupt açık
TRISIO=%00001000


'                        Vdd  1----        ---- 8   Vss
'                        Gp5  2----  12F   ---- 7   R
'                        Gp4  3----  675   ---- 6   G
' Vdd--- 10K-- MCLR      GP3  4----        ---- 5   B

 Dim r As Byte 
 Dim g As Byte
 Dim b As Byte
 Dim say As Byte
 Dim kesme As Byte
 Dim i As Byte 
 Dim j As Byte 
 Dim k As Byte 
 Dim l As Byte
 Dim out As Byte 
 Dim Fls As Byte 
 

basla:


'INTCON.7 = 0    ' disable global interrupts
'INTCON.6 = 0    ' disable peripheral interrupts
'PIE1.0 = 0       ' disable timer 1 interrupt
'PIR1.0 = 0       ' clear timer 1 interrupt flag

renk_set:
GPIO.1=1:  GPIO.2=1

GPIO.0=0              'R=1     R
GoSub gec1
GPIO.1=0              'G=1     RG
GoSub gec1
GPIO.2=0              'B=1     RGB
GoSub gec1            
GPIO.1=1              'G=0     RB
GoSub gec1            
GPIO.0=1               'R=0    B
GoSub gec1
GPIO.1=1              'G=1     BG
GoSub gec1
GPIO.2=1              'B=0     G

GoSub rs_ileri_R
GoSub rs_ileri_G
GoSub rs_ileri_B
GoSub rs_geri_R
GoSub rs_geri_B
GoSub rs_geri_G
GoSub rs_ileri_R
GoSub rs_ileri_B
GoSub rs_ileri_G
GoSub rs_geri_R
GoSub rs_geri_G
GoSub rs_geri_B
GoSub flash


GoTo basla

rs_ileri_R:
For i= 1 To 64
    For k=0 To 7
        For j=0 To i
            GPIO.0=0
            GoSub gec2
        Next
    
        For j=i To 64
            GPIO.0=1
            GoSub gec2
        Next 
    Next
Next
GPIO.0=0
Return 

rs_ileri_G:
For i= 1 To 64
    For k=0 To 7
        For j=0 To i
            GPIO.1=0
            GoSub gec2
        Next
    
        For j=i To 64
            GPIO.1=1
            GoSub gec2
        Next 
    Next
Next
GPIO.1=0
Return

rs_ileri_B:
For i= 1 To 64
    For k=0 To 7
        For j=0 To i
            GPIO.2=0
            GoSub gec2
        Next
    
        For j=i To 64
            GPIO.2=1
            GoSub gec2
        Next 
    Next
Next
GPIO.2=0
Return

rs_geri_R:
For i= 1 To 64
    For k=0 To 7
        For j=64 To i  Step -1
            GPIO.0=0
            GoSub gec2
        Next
    
        For j=i To 0 Step -1
            GPIO.0=1
            GoSub gec2
        Next 
    Next
Next
GPIO.0=1
Return 

rs_geri_G:
For i= 1 To 64
    For k=0 To 7
        For j=64 To i  Step -1
            GPIO.1=0
            GoSub gec2
        Next
    
        For j=i To 0 Step -1
            GPIO.1=1
            GoSub gec2
        Next 
    Next
Next
GPIO.1=1
Return

rs_geri_B:
For i= 1 To 64
    For k=0 To 7
        For j=64 To i  Step -1
            GPIO.2=0
            GoSub gec2
        Next
    
        For j=i To 0 Step -1
            GPIO.2=1
            GoSub gec2
        Next 
    Next
Next
GPIO.2=1
Return

gec1:

For g=0 To 200
    For r=0 To 200
        Nop
        Nop
        Nop
        Nop
        Nop
        Nop
        Nop
        Nop
        Nop
        Nop
    Next
Next

Return 

gec2:
For g=0 To 8
    Nop
    Nop
    Nop
    Nop
    Nop
Next
Return

flash:
GPIO=1
For i=0 To 4
    For j=0 To 2
        GPIO.0=0
        DelayMS 500
        GPIO.0=1 :GPIO.1=0
        DelayMS 500
        GPIO.1=1  :GPIO.2=0
        DelayMS 500
        GPIO.2=1
        DelayMS 500
    Next
    
    For j=0 To 6
        GPIO=GPIO & %11111000
        DelayMS 500
        GPIO=GPIO | %00000111
        DelayMS 500
    Next
Next
Return
End

sadogan

@vedo35 linkini vediginiz pic de 4 adet pwm var.
16f1825 i de inceleyin oda 4 pwm li
18f25k22 de ise 5 adet pwm var

vedo35

Tamam emin olayim dedim. f1825 ten bir tane almak istiyordum. Boylece kendim birseyler yapmaya calisacagim. Bakalim.  Yanliz ferit06 verdiginiz kodlar icin tesekkurler..de ben protondan hic anlamam. Bunun CCs li olani varsa cok memnun edersiniz. Sizlerede zahmet veriyorum arkadaslar. Hayirli geceler.
Biliyormusun dedi, ben ne yaptiysam kader icabi yaptim dedi. Ben gene sustum.... Kimbilir sende belki kaderin memurusun vazifeni yapiyorsun dedi.

irdal

18f1330/2431/4431 de toplamda 8 adet bulunuyor

vedo35

Tekrar tesekkurler 18f1330 ve 18f4431 i aliexpresten siparis ettim. Gelince kurcalayalim bakalim birseyler yapabilecekmiyiz. :)
Biliyormusun dedi, ben ne yaptiysam kader icabi yaptim dedi. Ben gene sustum.... Kimbilir sende belki kaderin memurusun vazifeni yapiyorsun dedi.