12f675 Adc sorunu!!!

Başlatan Okan12345, 26 Nisan 2014, 01:48:46

Okan12345

Iyi Akşamlar Arkadaşlar. 4 saata yakındır uğraşıyorum hatanın nerde olduğunu bir türlü bulamadım.  Sinirlerim iyice bozuldu  >:(

Aşağıdakı resimde anlaşılacağı gibi Pil durum gösterici yapmak istiyorum ama bir türlü sorunu gözemiyorum. Sorun şudur voltajı artırdığımda ledler yanıyor ama GPİO1 e bagli olan led sacmaliyor surekli yanip sorunuyor. 





Koduda şudur bir az degisiklik yaptim üzerinde galiba önceki çalışan kod değil sizden istedigim bu kodu düzenlemeniz. ALLAH rızası için.

'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2014 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 03.03.2014                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
'****************************************************************
'*  Name    : Robot Projesi.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2014 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 24.02.2014                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
@ DEVICE PIC12f675, intrc_osc_noclkout, wdt_on, pwrt_on, mclr_off, protect_off

TRISIO=%010010 ' Sonuncu rakam 7ci biti ifade ediyor ve ters sirayla 
GPIO=%00000000


DEFINE	ADC_BITS	10 'A/D  ?evirim sonucu ka? bit olacak
DEFINE	ADC_SAMPLEUS	10  '?rnekleme zaman? mikro saniye cinsinden.
ADCON0=%01000001
Ansel=%10010000
wpu=0

Deger var word
symbol Led= gpio.1
symbol Led1= gpio.2
symbol Led2= gpio.3
symbol Led3= gpio.4
symbol Led4= gpio.5



Basla:
 
Adcin 0,deger   





if deger>800 then 
high led
else 
low led
endif


if deger>600 then 
high led1
else 
low led1
endif


if deger>400 then 
high led3
else 
low led3
endif


if deger>300 then 
high led4
else 
low led4
endif
goto basla



Birde su registerlere verdigimiz binary degerlerin sırası nasıldır?


Mesela
Adcon0=%10000000

dedigimizde

ilk rakam 7ci bit son rakam ise 0 ci bitdir dogrumudur?
Yani
7bit<00000000> 0 bit

Birde ornegin 12f675 in 6 io bacagi var bu durumda registerlere rakam girdigimizde 000000 bittenmi ibaret olmalidir?

Rica ediyorum.


pea

Büyük-küçük harf sorunu göze çarpıyor. Led tanımlanmış, led'e atama yapılmış.
En soldaki bit MSB, en yüksek değerli bit'tir. Yani 7. bit.
6 bitlik değer girdiğinizde, compiler bunu 0'larla doldurarak 1 byte'a çevirir. 12f675'te GPIO Register'ının 6. ve 7. bit'leri 0'dır ve değiştirilebilir değildir. Donanımda da bir değişim olmaz.

Maxim

gpio.1 giriş olarak set edilmiş led ondan yanmıyor

Okan12345

Lutfen rica ediyorum yeniden duzenleyerek yazarmisiniz kodu?

OG

#4
dene bakalım

@ DEVICE PIC12f675, intrc_osc_noclkout, wdt_on, pwrt_on, mclr_off, protect_off
DEFINE OSCCAL_1K 1 
DEFINE OSC 4

TRISIO=%00000001 ' Sonuncu rakam 7ci biti ifade ediyor ve ters sirayla 
GPIO=%00000000


DEFINE	ADC_BITS	10 'A/D  ?evirim sonucu ka? bit olacak
DEFINE	ADC_SAMPLEUS	10  '?rnekleme zaman? mikro saniye cinsinden.
ADCON0.7=1
Ansel=%00000001
wpu=0

Deger var Word
Symbol Led= gpio.1
Symbol Led1= gpio.2
'symbol Led2= gpio.3
Symbol Led3= gpio.4
Symbol Led4= gpio.5



Basla:
 
Adcin 0,deger   

If deger>800 Then 
High Led
Else 
Low Led
EndIf


If deger>600 Then 
High Led1
Else 
Low Led1
EndIf


If deger>400 Then 
High Led3
Else 
Low Led3
EndIf


If deger>300 Then 
High Led4
Else 
Low Led4
EndIf

GoTo Basla
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

Okan12345

ALLAH razı olsun çok teşekkür ederim

Okan12345

İyi Akşamlar Arkadaşlar. Aşağıda resimdede anlaşıldığı gibi Pil durumunu gösteren devre.   

Proteusda 3.5v gerilimde ledlerin tamamı yanıyor potantimetri azaltdığım zaman voltaj düştükce bir bir sönüyor.

Ama gerçekte 2.5v ulaştığı zaman Gpio 2 ve 4 e bağlı olan ledler aynı zamanda yanıyor diğer ikisi ise hiç yanmıyor.  Tekrar tekrar silerek programladım  durum aynı.

Bu arada Programlayıcı cihazda ve Picde kesinlikle bir sorun test etdim.  90% ihtimal koddadır sorun yani yazmaçlarda galiba degerleri dogru girmemişim rica ediyorum bir bakarmısınız?


Buyrun





@ DEVICE PIC12f675, intrc_osc_noclkout, wdt_on, pwrt_on, mclr_off, protect_off

TRISIO=%00001001 ' 7bit <00000000> 0 bit 
GPIO=%00000000


DEFINE	ADC_BITS	10 'A/D  ?evirim sonucu ka? bit olacak
DEFINE	ADC_SAMPLEUS	10 '?rnekleme zaman? mikro saniye cinsinden.

CMCON = 7
ANSEL =%01000001
ADCON0 =%10000000
WPU=0
OPTION_REG = %01000000


Deger var word
symbol Led= gpio.1
symbol Led1= gpio.2
symbol Sarj= gpio.3
symbol Led3= gpio.4
symbol Led4= gpio.5



Basla:
 
Adcin 0,deger   





if deger>715 then 
high led
else 
low led
endif


if deger>670 then 
high led1
else 
low led1
endif


if deger>625 then 
high led3
else 
low led3
endif


if deger>595 then 
HIGH LED4
else 
low led4
endif

if sarj=0 then
if deger<560 then
pause 400
high led4
pause 400
low led4
endif
endif



goto basla




Kabil ATICI

İşlemcini ölçüm yaptığın yerden besliyorsan Ledlerin çalışma gerilimlerine dikkat. Referans geriliminide.
ambar7

Okan12345

Tamamda hocam bu şimdi simulasyon dışında neden çalışmıyor?

OG

Sonradan dikkatimi çekti,
senin verdiğin kodda düzeltme yapıp vermiştim ama simulasyonda dikkate alınmayan bazı atamalar eksikmiş, mesela
DEFINE OSCCAL_1K 1

Bunu yazmazsan programlama anında OSC set değerini silersin.

Forumda  DEFINE OSCCAL_1K 1   konusunu ararsan detaylı bilgi var.

Bir de DEFINE OSC 4 eklersen iyi olur gerci default olarak 4 kabul ediyordur ama eklemekte fayda var, hem eksik bırakmamak adına  alışkanlık olur.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

Okan12345

Acaba bu yüzdenmi çalışmıyor devre?

pwm.c

Devreyi gerçekte denedim 3.5v ile gayet normal çalışıyor.
bu arada, ledlere direnç bağladın mı?
_/\/\/\_ -[ı- -ı>|- -|ı|ı|ı- -ı< -||- -l[]l-