arslan74 Hocamın Analog Dersi Hakkında

Başlatan ORC, 26 Şubat 2009, 11:36:44

ORC

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




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


simdi en azından adc_val degeri gosteriyor ama voltu gostermiyor



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 :(

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.

ORC

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.pdf

fiyat 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: