problem nedir? 12f675

Başlatan zoptrik, 04 Temmuz 2011, 03:27:58

zoptrik

selamlar,

program:
trisio=1
'intcon=0
adcon0=%10000011

DEFINE   ADC_BITS   10          'A/D çevirim sonucu kaç bit olacak
DEFINE   ADC_CLOCK   3   'Clock kaynağı (3=rc)
DEFINE   ADC_SAMPLEUS   100   'Örnekleme zamanı mikro saniye cinsinden.

ham var word

fatih:
adcin 0, ham
if ham>500 then
gpio.1=1
endif
if ham<300 then
gpio.0=0
endif
goto fatih

end

problem nedir? sanırım 12f675 için programın başında osc seçimi yapmam lazım ama ETE hocamın 12f675 için verdiği tanımlamaları yapınca microcode studio dosyayı hex e çevirmiyor hata veriyor. bu şekilde isiste sıkıntısız çalışıyor fakat bu şekilde hata veriyor.
şimdiden teşekkürler
iyi forumlar...

Tagli

Gerçek ortamda denedin mi? Isis uyarı vermiş sadece, öte yandan koda bakıldığında bir yanlışlık göremedim. Belki clock kaynağı RC olmasa daha iyi olurdu, ama bu şekilde de çalışması lazım bence. Ana döngü sonuna (goto'nun hemen öncesine) 200 ms falan bir bekleme koy, bakalım değişen bir şey olacak mı...
Gökçe Tağlıoğlu

zoptrik

#2
bekleme koydum fakat isis yine aynı hatayı verdi devreyi düzmedim işin açığı bu benim gerçekte uygulamaya koyacağım kodları bana ait ilk devre olacak adc ile 3 gündür tanışığım ve 675 in datasheetinde adcon0 registerini çözene kadar göbeğim çatladı :) eğer kodlarda bir hata yoksa devre çalışır diye düşünüyorum uygulamaya koyar koymaz sonuçları buraya yazarım.
aklıma takılan bir soru daha var ansel registerini çözemedim ve özellikle belirtilmediği zaman girişlerin analog olacağı düşüncesi ile sadece trisio dan 0bitini giriş yaptığım için ayrıca belirtmedim acaba bundan kaynaklı bir sorun olabilir mi?
bu arada adcon0 registerinin 2. bitini 0 yaptım (adcon0=%10000001) ve sorunun biri ortadan kalktı :)

ilginiz için teşekkürler.


Edit OG (mesaj birleştirmesi;

son kalan problem ansel registerinden kaynaklanıyormuş (ansel=%00110001) yaptım sorun ortadan kalktı :)
anselin 4-6. bitini (x11 = FRC (clock derived from a dedicated internal oscillator = 500 kHz max) seçtim zaten son 4 biti son 4 pini gösteriyor onun da son bitini kullanıyorum 7. bit de 0 okunur devredışı diyordu.
ilginiz için tekrar teşekkürler
programın son hali:
trisio=1
ansel=%00110001
'intcon=0
adcon0=%10000001

DEFINE   ADC_BITS   10          'A/D çevirim sonucu kaç bit olacak
DEFINE   ADC_CLOCK   3   'Clock kaynağı (3=rc)
DEFINE   ADC_SAMPLEUS   100   'Örnekleme zamanı mikro saniye cinsinden.

ham var word

fatih:
adcin 0, ham
if ham>500 then
gpio.1=1
endif
if ham<300 then
gpio.0=0
endif
pause 100
goto fatih

end

şimdi de 675 in dahili pull up larını açamıyorum onu da geçtik 4.7k ile dışarıdan bile pull up olmuyor çok garip neden olabilir acaba?

iyi forumlar...