Merhabalar
2 gundur arslan74 hocamın yazmıs oldugu analog dersindeki programı calıstırmaya calısıyorum.. Hocamın yazmıs oldugu kod u proteus a atıyorum calısıyor sorun yok.. Ama aynı kodları ben kendi bilgisayarımda mplab da proje olusturarak kullandıgımda (ama tamamen aynı değiştirmedim çünkü) proteus da sabit deger cıkıyor volt için 0 adc_val degeri için 89 lu bi rakam çıkıyor..
Hata da vermiyor sorun yok gibi gozukuyor ama calısmıyor kullandıgım derleyici asagıdaki resimde secili olan derleyici 9.60
(http://img22.imageshack.us/img22/5063/77384965.jpg) (http://imageshack.us)
(http://img22.imageshack.us/img22/77384965.jpg/1/w442.png) (http://g.imageshack.us/img22/77384965.jpg/1/)
output cıktısı asagıdaki gibi
Alıntı YapBuild C:\Documents and Settings\cc\Desktop\Bolum10\workspace for device 16F877
Using driver C:\Program Files\HI-TECH Software\PICC\PRO\9.60\bin\picc.exe
Executing: "C:\Program Files\HI-TECH Software\PICC\PRO\9.60\bin\picc.exe" --pass1 "C:\Documents and Settings\cc\Desktop\Bolum10\delay.c" --chip=16F877 -P --opt=default,+asm,9 --warn=0 --double=24 -q -g --asmlist "--errformat=Error [%n] %f; %l.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f; %l.%c %s"
Executing: "C:\Program Files\HI-TECH Software\PICC\PRO\9.60\bin\picc.exe" --pass1 "C:\Documents and Settings\cc\Desktop\Bolum10\lcd.c" --chip=16F877 -P --opt=default,+asm,9 --warn=0 --double=24 -q -g --asmlist "--errformat=Error [%n] %f; %l.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f; %l.%c %s"
Executing: "C:\Program Files\HI-TECH Software\PICC\PRO\9.60\bin\picc.exe" --pass1 "C:\Documents and Settings\cc\Desktop\Bolum10\main.c" --chip=16F877 -P --opt=default,+asm,9 --warn=0 --double=24 -q -g --asmlist "--errformat=Error [%n] %f; %l.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f; %l.%c %s"
Executing: "C:\Program Files\HI-TECH Software\PICC\PRO\9.60\bin\picc.exe" -oworkspace.cof -mworkspace.map --runtime=default,+clear,+init,-keep,+osccal,-download,-resetbits,+stackcall,+stackwarn delay.p1 lcd.p1 main.p1 --chip=16F877 -P --opt=default,+asm,9 --warn=0 --double=24 -q -g --asmlist "--errformat=Error [%n] %f; %l.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f; %l.%c %s"
Memory Summary:
Program space used D4Ch ( 3404) of 2000h words ( 41.6%)
Data space used 66h ( 102) of 170h bytes ( 27.7%)
EEPROM space used 0h ( 0) of 100h bytes ( 0.0%)
Configuration bits used 0h ( 0) of 1h word ( 0.0%)
ID Location space used 0h ( 0) of 4h bytes ( 0.0%)
Loaded C:\Documents and Settings\EEE\Desktop\Bolum10\workspace.cof.
Derleyiciyi kaldırdım tekrardan kurdum sorun gene düzelmedi ama sunu da belirtmek istiyorum arslan74 hocamın yazdıgı program sonucu cıkan hex ile benim bilgisayarımdaki hex aynı değil..
Sorun sizce nedir daha once boyle bi sorunla karsılasan arkadaslar varsa yardımcı olabilir mi
Tesekkurler
//----------------------------------------------------------------------------------
Yukardaki PICC derleyicisini kaldırdım onun yerine picc std 9.60 pl2 yi kurdum
(http://img207.imageshack.us/img207/2598/99888091.jpg) (http://imageshack.us)
simdi en azından adc_val degeri gosteriyor ama voltu gostermiyor
(http://img527.imageshack.us/img527/4350/42027096.jpg) (http://imageshack.us)
(http://img527.imageshack.us/img527/42027096.jpg/1/w575.png) (http://g.imageshack.us/img527/42027096.jpg/1/)
Bu arada bahsi gecen program da asagıda
Alıntı Yap
#include <pic.h>
#include <stdio.h>
#include "main.h"
#include "lcd.h"
#include "delay.h"
unsigned char outString[17];
unsigned int
read_adc(void){
unsigned int val;
ADIF = 0; //Clear ADIF bit
ADGO=1; // initiate conversion on the selected channel
while ( ADGO || !ADIF )
continue;
val = ADRESL;
val += ((unsigned int)ADRESH * 256);
return val;
} //
void main(void){
TRISA = 0b00000001; // RA0 input
/***********************************************************************
ADC ön ayarları
***********************************************************************/
CHS2 = 0;
CHS1 = 0;
CHS0 = 0;
ADCS1 = 1;
ADCS0 = 1;
ADFM = 1; //0 = Left justified. 6 Least Significant bits of ADRESL are read as Â0'.
PCFG0 = 0;
PCFG1 = 1;
PCFG2 = 1;
PCFG3 = 1;
ADON = 1;
/**********************************************************************/
lcd_init(FOURBIT_MODE);
while(1){
unsigned int adc_val;
float Volt;
adc_val = read_adc();
Volt = (5./1023)*adc_val;
lcd_goto(S1_1); // 1. satırının 1.cü sütününa git
sprintf (outString,"ADC Val = %d ", adc_val );
lcd_puts(outString);
lcd_goto(S2_1); // 2. satırının 1.cü sütününa git
sprintf (outString,"Volt= %f V", Volt );
lcd_puts(outString);
DelayMs(50);
}
}
Herseyi gectim lcd de nasıl oluyor da %f nin f si gozukuyor anlamadım anlayan var mı acaba :(
Alıntı Yap
Herseyi gectim lcd de nasıl oluyor da %f nin f si gozukuyor anlamadım anlayan var mı acaba
Bunun nedeni derleyici ayarlarından kaynaklaniyor. printf fonksiyonunun neleri cevireceğini belirtmelisin. Standart olarak sadece int ayarlıdır. float seceneğinide secersen sorun kalkar.
Bu konuyu, yanlış hatırlamiyorsam forumda bahs etmiş olmalıyım.
Selamlar.
Alıntı yapılan: "arslan74"Alıntı Yap
Herseyi gectim lcd de nasıl oluyor da %f nin f si gozukuyor anlamadım anlayan var mı acaba
Bunun nedeni derleyici ayarlarından kaynaklaniyor. printf fonksiyonunun neleri cevireceğini belirtmelisin. Standart olarak sadece int ayarlıdır. float seceneğinide secersen sorun kalkar.
Bu konuyu, yanlış hatırlamiyorsam forumda bahs etmiş olmalıyım.
Selamlar.
Evet hocam hatırladım haklısınız bahsetmiştiniz ama benim ilk kurdugum derleyicide float gosteriyor diye ben ikinci kurdugumda o ayrıntıyı kacırmısım kusura bakmayın teşekkür ederim..Peki hocam bişey daha sorabilirmiyim benim ilk derleyicim yani bu sorunla karsılasıp calısmadıgını anlayıp kaldırdıgım derleyici
PICC Pro 9.60PL4
dü. sonra bu calısmıyor diye ben
STD 9.60PL2
yi kurdum bu ikisi arasında bir fark var mı programladıkları uC lara baktım bana aynı gibi geldi.Bunu da acıklarmısınız hocam.. :oops:
Çok teşekkür ederim yardımlarınızdan dolayı..
//-------------------
Hocam ben burda bir karsılastırma tablosu buldum bu sorum ile alakalı
http://www.htsoft.com/microchip/products/compilers/PIC_compilers.pdffiyat olarak da biri yaklaşık 1500 dolar(PRO) digeri std yani 1000 dolar yaklasık yukarda verdiğim pdf deki özellikler bu kadar fiyat farkı olmasını gerektirecek kadar önemli mi acaba :roll: