Pals üretmek ile ilgili bir sorun

Başlatan dyonizos, 13 Ekim 2011, 22:38:47

Erol YILMAZ

pwm çok uygun değil, zira palsler adetli !

Bunu üretmek 4 mhz osc ile gayet kolay,
Dahili RC osc de bu işe uygun,  %1 hata problem değil.
İlgili arkadaşın tek yapması gereken, (kıt kaynaklara sahip olduğundan) kodu Proteus'ta çalıştırıp çıkışın uzunluğunu ölçmek !

dyonizos

Devrede ir ledle beraber birde normal led bagli. Ledin yandigini ve delay surelerini uzattigimda da gozle periyodu alginabiliyor. Ancak tabi desigim gibi pulse surelerinin uydugundan emin olamiyorum dogal olarak.

Maxim

tamamdır bu %100 çalışır heralde
pulsler tam 15.0us x 16 tane

aradaki bekleme
photo için 7330,7 us
video için 5360,6 us


'High cycle 15,0 uS
'Low cycle 15,0 uS
'Photo Bursts 7330,7 uS
'Video Bursts 5360,6 uS   

Device = 12F683
Xtal 20
Config FOSC_HS, WDTE_OFF, PWRTE_ON, MCLRE_OFF, CP_OFF, CPD_OFF, BOREN_OFF, IESO_OFF, FCMEN_OFF

GPIO=%00000000
TRISIO=%00111110

Declare All_Digital= true
OPTION_REG.7=0
WPU=%00000110

Dim i As Byte
Dim delayBetweenBursts As Word

Symbol LED =GPIO.0
Symbol Photo = GPIO.1
Symbol Video = GPIO.2


MAIN:

If Photo=0 Then
    delayBetweenBursts=7314 '7330
    LED=0
    GoSub SHOOT    
EndIf

DelayMS 15

If Video=0 Then
    delayBetweenBursts=5344 '5360
    LED=0
    GoSub SHOOT
EndIf

DelayMS 15
GoTo MAIN


SHOOT: 
    For i=0 To 31 
        Toggle LED
        DelayUS 12
        Nop               
    Next
    
   DelayUS delayBetweenBursts

    For i=0 To 31 
        Toggle LED
        DelayUS 12
        Nop              
    Next

delayBetweenBursts=0
Return



dyonizos

bu kodları 20mhz de ve 12f675 de denedım ancak aradalı delayms15 den dolayı sanırım ledın yanıp sonus halını gorebılıyorum. yanılmıyorsam kod led e grafıktekı pulse ı verdıkten sonra delay 15 yapıp tekrar aynı pulse ı uretıyor elımızı butondan cekmedıgımız zaman.
bu sorun olmamalı sanırım. Ancak esas sorun kamerayı kumanda edemedım yıne :)
bu kullandıgım pic in 12f675 olmasından kaynaklanmıyor olabılırmı. gercı bu pic te 20 mhz krıstalı desteklıyor ve calısıtırıyor ama kamerada bır hareket yok malesef.

Maxim

arada 15ms bilerek bekleme koydum
o resimdeki sinyal tam olarak üretiliyor, ondan eminim ölçtüm

12f675 kodu verin bakalım nedir

dyonizos

'High cycle 15,0 uS
'Low cycle 15,0 uS
'Photo Bursts 7330,7 uS
'Video Bursts 5360,6 uS   

Device = 12F675
Xtal 20
Config OSC_HS, WDTE_OFF, PWRTE_ON, MCLRE_OFF, CP_OFF, CPD_OFF

GPIO=%00000000
TRISIO=%00111110

Declare All_Digital= true
OPTION_REG.7=0
WPU=%00000110

Dim i As Byte
Dim delayBetweenBursts As Word

Symbol LED =GPIO.0
Symbol Photo = GPIO.1
Symbol Video = GPIO.2


MAIN:

If Photo=0 Then
    delayBetweenBursts=7314 '7330
    LED=0
    GoSub SHOOT   
EndIf

DelayMS 15

If Video=0 Then
    delayBetweenBursts=5344 '5360
    LED=0
    GoSub SHOOT
EndIf

DelayMS 15
GoTo MAIN


SHOOT:
    For i=0 To 31
        Toggle LED
        DelayUS 12
        Nop               
    Next
   
   DelayUS delayBetweenBursts

    For i=0 To 31
        Toggle LED
        DelayUS 12
        Nop             
    Next

delayBetweenBursts=0
Return

dyonizos

bu arada led i direct pic e bagladım. arada bır transistor yada direnc yok. zaten pulse li gelicek diye araya direnc koymadım cok zayıf kalıyor ısıgı. (normal led ın)
araya transistor koymam gerekırmı acaba?

Maxim

transistore gerek yok ama araya mutlaka 220 ohm koyun

bu arada 12f675 kodu bende çalışmıyor ne yaptıysam olmadı tuhaf
hatta config ayarlarında düzeltmelerde yaptım
2 tane 12F675 denedim

benim 12F683 canavar gibi çalışıyor yukardaki kod ile


'High cycle 15,0 uS
'Low cycle 15,0 uS
'Photo Bursts 7330,7 uS
'Video Bursts 5360,6 uS   

Device 12F675
Xtal 20
Config FOSC_HS, WDTE_OFF, PWRTE_ON, MCLRE_OFF, BOREN_OFF, CP_OFF, CPD_OFF
Set_OSCCAL

GPIO=%00000000
TRISIO=%00111110
ANSEL =%00000000
Declare All_Digital= true
CMCON = 7
OPTION_REG.7=0
WPU=%00000110

Dim i As Byte
Dim delayBetweenBursts As Word

Symbol LED =GPIO.0
Symbol Photo = GPIO.1
Symbol Video = GPIO.2


MAIN:

If Photo=0 Then
    delayBetweenBursts=7314 '7330
    LED=0
    GoSub SHOOT    
EndIf

DelayMS 15

If Video=0 Then
    delayBetweenBursts=5344 '5360
    LED=0
    GoSub SHOOT
EndIf

DelayMS 15
GoTo MAIN


SHOOT: 
    For i=0 To 31 
        Toggle LED
        DelayUS 12
        Nop               
    Next
    
   DelayUS delayBetweenBursts

    For i=0 To 31 
        Toggle LED
        DelayUS 12
        Nop              
    Next

delayBetweenBursts=0
Return

dyonizos

derleme yaparken osilatoru manuel olarak hs secıyorum ben. yanlısmı yapıyorum acaba? direk kodu kullanırsam config ayarlarında osilatoru LP olarak görüyor

Maxim

çalışmıyor dediğim fiziksel devre olarak çalışmıyor
yoksa proteus tamam

dyonizos

683 ile aynı degerlerimi veriyor proteusta. siz ölçümü proteusta yaptınız sanırım

Maxim

ben hem proteus hem canlı devreyi test ettim

675 proteusta çalışıyor, canlıda fıss
683 hem proteusta hem canlıda OK

Maxim

12F675 , bu kod ile gerçek devre çalışıyor

'High cycle 15,0 uS
'Low cycle 15,0 uS
'Photo Bursts 7330,7 uS
'Video Bursts 5360,6 uS   

Device 12F675
Xtal 20

Config CPD_OFF,CP_OFF,BODEN_ON,MCLRE_OFF,PWRTE_ON,WDT_OFF,HS_OSC
Set_OSCCAL

GPIO=%00000000
TRISIO=%00111110
ANSEL =0
CMCON = 7
OPTION_REG.7=0
WPU=%00000110

Dim i As Byte
Dim delayBetweenBursts As Word

Symbol LED =GPIO.0
Symbol Photo = GPIO.1
Symbol Video = GPIO.2


MAIN:

If Photo=0 Then
    delayBetweenBursts=7314 '7330
    LED=0
    GoSub SHOOT    
EndIf

DelayMS 15

If Video=0 Then
    delayBetweenBursts=5344 '5360
    LED=0
    GoSub SHOOT
EndIf

DelayMS 15
GoTo MAIN


SHOOT: 
    For i=0 To 31 
        Toggle LED
        DelayUS 12
        Nop               
    Next
    
   DelayUS delayBetweenBursts

    For i=0 To 31 
        Toggle LED
        DelayUS 12
        Nop              
    Next

delayBetweenBursts=0
Return

dyonizos

Siz devrede normal led kullaniyorsunuz sanirim. Isik gucu normalmi ?

Maxim

Alıntı yapılan: dyonizos - 14 Ekim 2011, 20:25:11
Siz devrede normal led kullaniyorsunuz sanirim. Isik gucu normalmi ?

hayır çıkışı ölçüyorum

infrared kullanmak gerekir normalde
ve infrared led gözle görünmez biliyorsun

normal beyaz led ile bu işi denemiyorsun değilmi ? öyle düşünmem gerekmiyor ?