Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => Microchip PIC => Konuyu başlatan: agora_meyhanesi42 - 16 Şubat 2017, 20:21:37

Başlık: 16f88 derlenen kod çalışmıyor
Gönderen: agora_meyhanesi42 - 16 Şubat 2017, 20:21:37
S.a. arkadaşlar proteusta çalışan kodlar işlemciye atınca çalışmıyor. Genel tavsiyeleriniz nelerdir. Telefondan bağlandığım icin kodları atamadım. Kodlar proteusta çalışıyor ama 16f88 breadborda hiç tepki vermiyor. Internal osilatör kullandım pice sadece vdd gnd ve mclr bağlantısı yaptım. Dikkat etmem gereken hususlar nelerdir acaba. Teşekkür ederim.
Başlık: Ynt: 16f88 derlenen kod çalışmıyor
Gönderen: ipek - 16 Şubat 2017, 20:47:50
MCLR yi sigortalarda kontrol edermisin..
Başlık: Ynt: 16f88 derlenen kod çalışmıyor
Gönderen: agora_meyhanesi42 - 16 Şubat 2017, 20:52:15
Alıntı yapılan: ipek - 16 Şubat 2017, 20:47:50
MCLR yi sigortalarda kontrol edermisin..
mclryi kodlarla kontrol ettigimde bu kezde proteusta çalışmıyor onun icin programı atarken kontrolü dışardan olacak şekilde ayarlıyordum. Birde öyle deneyeyim yarın. Sagolun
Başlık: Ynt: 16f88 derlenen kod çalışmıyor
Gönderen: dursuncemal - 16 Şubat 2017, 23:12:49
kodlarinizi gorebilsek belki yardimci olabiliriz.
Başlık: Ynt: 16f88 derlenen kod çalışmıyor
Gönderen: sifirzero - 16 Şubat 2017, 23:27:41
kodlar ve şemayı görürsek yardımcı olalım.
Başlık: Ynt: 16f88 derlenen kod çalışmıyor
Gönderen: sifirzero - 16 Şubat 2017, 23:29:18
ustam dac ile ilgi yazılım ise gerçekte çalışmaz.simülasyonda çalışır.çalışmama sebebi kodların yanlıştır.sadece bu bir örnek.
Başlık: Ynt: 16f88 derlenen kod çalışmıyor
Gönderen: agora_meyhanesi42 - 16 Şubat 2017, 23:31:02
Arkadaşlar kod ve sema ekliyemiyorum çok özür dilerim kodlar bilgisayarda ben cepten bağlanıyorum ama şöyle soyleyim basit bir led yakma söndürme bile olmuyor. Pic kit 2 ile sorunsuz atıyorum programı proteusta yanıp sonen led boarda olmuyor mclryi denedim olmadi. Başka pic denedim olmadi. Sabahtan beri en basit programları bile  denedim olmadi boardda degistirdim. Yalnız bir ayrıntı picler bir kac yıldır kendi halinde duruyordu. Bir problem olurmu bundan dolayi. Gerçi pickit program atıyor ve okuyor
Başlık: Ynt: 16f88 derlenen kod çalışmıyor
Gönderen: sifirzero - 16 Şubat 2017, 23:36:25
dirençleri kontrol et ustam
Başlık: Ynt: 16f88 derlenen kod çalışmıyor
Gönderen: agora_meyhanesi42 - 16 Şubat 2017, 23:57:56
Alıntı yapılan: serkancetin - 16 Şubat 2017, 23:36:25
dirençleri kontrol et ustam
kendi yazdığım programı denemekten vazgeçip sadece led yakip söndürme yapıyorum onda da sadece led direnci var yani sorun sanırım direnclerde değil. Sanki problem sigorta ayarlarında gibi ama onlarda da bir kac değişiklik yaptım yine olmadi. Belki picler bozuktur.
Başlık: Ynt: 16f88 derlenen kod çalışmıyor
Gönderen: ilyas KAYA - 17 Şubat 2017, 03:02:59
 __CONFIG    _CONFIG1, _CP_ON & _CCP1_RB0 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_OFF & _PWRTE_ON & _WDT_ON & _INTRC_IO
     __CONFIG    _CONFIG2, _IESO_OFF & _FCMEN_OFF


Sigortaları bunlardır.


Ayrıca ;

OSCCON=%01101110
CMCON=7
adcon1=7
ansel=0

Yaparak deneyin.
Başlık: Ynt: 16f88 derlenen kod çalışmıyor
Gönderen: agora_meyhanesi42 - 17 Şubat 2017, 09:23:55
Bunlarida denedim. Sonradan 16f88 değil 12f675 işlemci denedim oda olmadi acaba pickit mi bozuk diye düşünmeye başladım ama dediğim gibi oda yazıyor yazdığını geriye okuyor
Başlık: Ynt: 16f88 derlenen kod çalışmıyor
Gönderen: dursuncemal - 17 Şubat 2017, 12:15:32
programin akisinda wdt yi sifirliyormusun.? eger emin degil sen ;  '_WDT_Off 'dene olmaz ise belemelerini iyice kontrol et. yinede olmaz ise kodlari gormekte fayda var.
Başlık: Ynt: 16f88 derlenen kod çalışmıyor
Gönderen: agora_meyhanesi42 - 17 Şubat 2017, 12:55:26
@ __config _CONFIG1, _INTRC_IO & _CCP1_RB3 & _WDT_OFF & _PWRTE_ON & _MCLR_ON & _BODEN_OFF & _LVP_OFF & _CPD_OFF & _DEBUG_ON & _CP_OFF
@ __config _CONFIG2, _FCMEN_OFF & _IESO_ON

define OSC 4
OSCCON=%01111000
porta=0
trisa=0
TRISB=%00000001

OPTION_REG=%00000000
INTCON=%10010000

ANSEL=0
CMCON=7


Tik var word
deGer var byte
kayiT var byte
kayit =0
i var word

TMR1H = 0
TMR1L = 0   'Reset TMR1

'ON INTERRUPT GoTo KESME    'kesme oluşursa KESME adlı etikete git.



start:
    portb.4=0
    pause 1000
    portb.4=1
    pause 1000
goto start
   
disable
Kesme:
   portb.4=1
pause 1000

intcon.1=0
resume
enable
end



Kod bu deneme amaçlı yaptığım bu kod bile çalışmıyor. Yalnız bugun sunu farkettim pic enerji üstündeyken gnd yi ayırdığım zaman portb.4 ten çıkış veriyor yani sadece vdd bağlı iken çıkış veriyor gndyi bağlayınca çıkış kesiliyor. Sanırım buda picin bozuk olduğunu gösteriyor.
Başlık: Ynt: 16f88 derlenen kod çalışmıyor
Gönderen: dursuncemal - 17 Şubat 2017, 13:23:24
devreyi neyin uzerinde calitiriyorsunuz. inteerup u iptal edip denermisiniz?
Başlık: Ynt: 16f88 derlenen kod çalışmıyor
Gönderen: agora_meyhanesi42 - 17 Şubat 2017, 13:55:04
interrupt zaten iptal buraya iptal edilmemiş halini koydum breadboard üstünde deniyorum. Olmayacak sanırım. Denemediğim şey kalmadı. İlk defa böyle bir şey gördüm.
Başlık: Ynt: 16f88 derlenen kod çalışmıyor
Gönderen: agora_meyhanesi42 - 17 Şubat 2017, 14:00:00

(https://s24.postimg.cc/5hlnyo49t/Ads_z.png) (https://postimg.cc/image/5hlnyo49t/)
asıl denediğim devre bu kodlarda bunlar alıcı ve vericiden oluşuyor.
verici
@ __config _CONFIG1, _INTRC_CLKOUT & _CCP1_RB3 & _WDT_OFF & _PWRTE_OFF & _MCLR_OFF & _BODEN_OFF & _LVP_OFF & _CPD_OFF & _DEBUG_OFF & _CP_OFF
@ __config _CONFIG2, _FCMEN_OFF & _IESO_ON

define OSC 4
OSCCON=%01111000
TRISB.0=1
TRISB.1=1
TRISB.3=0
PORTA=0:TRISA=0
PORTB.3=0
CMCON=7
OPTION_REG=%10000000

deGer var byte

'deGer var bit[7]
'deGer[0]=1
'deGer[1]=0
'deGer[2]=0
'deGer[3]=1
'deGer[4]=1
'deGer[5]=0
'deGer[6]=1
'deGer[7]=1

i var byte

T2CON =%00000101   'Bölücü 1/1 olarak verildi ve TMR2 aktif hale getirildi.
PR2=%11111001                       
'PWM-Peryot= (49+1) x 4 x ¼ x 1 =50 us  ve F=1000/50 = 20 KHz PWM frekansı dır.




start:
'  pause 10
if portb.0=0 then
while portb.0=0 : wend
deger=%11001100
CCP1CON.2=1  'bu iki komut ile PWM sinyali açılmış olacaktır
CCP1CON.3=1
pause 30 '20000 uS
CCP1CON.2=0  'bu iki komut ile PWM sinyali açılmış olacaktır
CCP1CON.3=0
pause 15  '10000 uS
 
for i=7 to 0 step -1


if deger.0[i]=1 then
CCP1CON.2=1  'bu iki komut ile PWM sinyali açılmış olacaktır
CCP1CON.3=1
pause 20  '14000 uS
CCP1CON.2=0  'bu iki komut ile PWM sinyali açılmış olacaktır
CCP1CON.3=0
pause 15
else
CCP1CON.2=1  'bu iki komut ile PWM sinyali açılmış olacaktır
CCP1CON.3=1
pause 10    '8000 uS
CCP1CON.2=0  'bu iki komut ile PWM sinyali açılmış olacaktır
CCP1CON.3=0
pause 15
endif

next
i=0
endif

if portb.1=0 then
while portb.1=0 : wend
deger=%01010101
CCP1CON.2=1  'bu iki komut ile PWM sinyali açılmış olacaktır
CCP1CON.3=1
pause 30 '20000 uS
CCP1CON.2=0  'bu iki komut ile PWM sinyali açılmış olacaktır
CCP1CON.3=0
pause 15  '10000 uS
 
for i=7 to 0 step -1


if deger.0[i]=1 then
CCP1CON.2=1  'bu iki komut ile PWM sinyali açılmış olacaktır
CCP1CON.3=1
pause 20  '14000 uS
CCP1CON.2=0  'bu iki komut ile PWM sinyali açılmış olacaktır
CCP1CON.3=0
pause 15
else
CCP1CON.2=1  'bu iki komut ile PWM sinyali açılmış olacaktır
CCP1CON.3=1
pause 10    '8000 uS
CCP1CON.2=0  'bu iki komut ile PWM sinyali açılmış olacaktır
CCP1CON.3=0
pause 15
endif

next
i=0
endif

'goto start

'gOnder:

pAUSE 200
goto start
End


alıcı
@ __config _CONFIG1, _INTRC_CLKOUT & _CCP1_RB3 & _WDT_OFF & _PWRTE_ON & _MCLR_OFF & _BODEN_OFF & _LVP_OFF & _CPD_OFF & _DEBUG_OFF & _CP_OFF
@ __config _CONFIG2, _FCMEN_OFF & _IESO_ON

define OSC 4
OSCCON=%01111000
porta=0
trisa=0
TRISB=%00000001

OPTION_REG=%00000000
INTCON=%10010000


CMCON=7


Tik var word
deGer var byte
kayiT var byte
kayit =0
i var word

TMR1H = 0
TMR1L = 0   'Reset TMR1

ON INTERRUPT GoTo KESME    'kesme oluşursa KESME adlı etikete git.

start:
if kayit =%11001100 then
PORTB.4 =1
endif
if kayit=%01010101 then
PORTB.4=0

endif

 
goto start

disable
Kesme:
   portb.4=1
T1Con.0=1
while portb.0=0 : wend
T1Con.0=0

tik.highbyte=tmr1h
tik.lowbyte=tmr1l
tik=tik/1000
tmr1h=0
tmr1l=0
if tik>27 and tik<32 then
     write 2,tik
         
    for  i=7 to 0 step -1
   
    while portb.0=1 : wend
    t1con.0=1
    while portb.0=0 : wend
    t1con.0=0
    tik.highbyte=tmr1h
    tik.lowbyte=tmr1l
    tik=tik/1000
    tmr1h=0
tmr1l=0
write 3,tik
    if   tik>18 and tik<22   then
             
            kayit.0[i]=1
    elseif tik>8 and tik<12 then
           
            kayit.0[i]=0
    else
    pause 160
    endif
     
    'Reset TMR1
    next
else
   
      portb.4=0

endif
pause 100
write 0,kayit

intcon.1=0
resume
enable
end


proteusta sorunsuz iletişim kuruyor ama boarda gelince tık yok