Eeprom ve adc kodu çözemedim.

Başlatan blacklogic, 04 Mart 2013, 04:39:41

blacklogic

Merhaba arkadaşlar ben adc ile bir bilgi alıp bunu chip eepromuna yazıyorum, ve epromda ki değer ile anlık adc değerini karşılaştırıyorum. İşin aslı bunu yapmak istiyorum ama beceremedim. Koduma bakıp bir öneride bulunabilirseniz çok sevinicem.

#include <pic.h>
#include "delay.h"
#include "eeprom.h"
int ADRESIML;
int ADRESIMH;
int deger=0;
int deger2=0;
void main(void)
{

TRISIO=0b000101;
GP1=0;
ADCON0=0b10000001;
ANSEL=0b00000001;

DelayUs(25);
GO=1;

ADRESIMH = data_eeprom_read(0x00);
ADRESIML = data_eeprom_read(0x01);

while(GP2) //ADC değerini eeproma al
{
data_eeprom_write(0x00,ADRESH); 
data_eeprom_write(0x01,ADRESL);
}

while(!GO)
{
deger = (int)(ADRESIMH*256+ADRESIML); // eepromdaki değeri hesapla
deger2 = (int)(ADRESH*256+ADRESL);  // anlık değeri hesapla

if(deger<deger2);
GP1=1;

if (deger=deger2);
GP1=0;

if (deger>deger2);
GP1=0;

DelayUs(25);
GO=1;
}



}

mehmet

while(1)
{
     while(GP2)
     {
        .....
      }
     ...
     .......
     ....
     while(!GO)
     {
        ....
      }
}
şeklinde kullanabilirisin. Ancak 2. while döngüsünden çıkmak istersen,
GO değişkenini dışarıdan bir şeyle(buton gibi) kontrol
etmen gerekli. İlk while içinden GP2, 1 olur olmaz 2. while
girer ve çıkmaz oradan.

İkinci olay if koşullarında "=, &, |" tek olarak kullanılamaz, tek
olarak kullanılırsa atama komutu olur.
Karşılaştırma yapabilmek için "==, &&, ||" olmalıdır. C ile
ilgili yardım için: http://www.kadifeli.com/fedon/stdcprtr.php
online kitabı inceleyebilirisniz.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr