PIC 16f877A'da A portunun 0. bitini analog giriş yapmak

muh_alper

Üye
Katılım
6 Ağu 2009
Mesajlar
4
Puanları
1
Yaş
41
#include <16f877A.h>

#include <math.h>
#use delay(clock=4000000)
#define devre1 RB5;
#define devre2 RB4;
main (void)
{
int ADCON0,ADCON1;
int devrem;
int devre2;
float giris;
int a,b;
devre1=1;
devre2=1;
ADCON0=1;
ADCON1=0x8F;
TRISA=0xFF;
TRISB=0x00;
set_adc_channel(0);
for(;
{
ADCON0=0x45;
giris=read_adc();
a=0;
b=0;
while (giris<2900.0)
{
delay_ms(500);
a=a+1;
if (a>3600)
{
devre2=0;
giris=read_adc();
while (giris<2900.0)
{
delay_ms(500);
b=b+1;
if (b>32400)
{devre1=0;
}
giris=read_adc();
}
giris=read_adc();
}}}}
hata1: UNdefined identifier RB5,TRISA,TRISB
hata 2: A numeric expression must appear here
hata nerede anlamadım.. benim amacım Aportunun 0. bitini analog giriş yapmak bu girişe göre port B deki iki biti zaman sayarak kontrol etmek.
 
Moderatör tarafında düzenlendi:
bir biti veya baytı #bit ve #byte komutlarıyla tanımlamadan kullanamazsınız. ayrıca tris kaydedicileri için set_tris_x() komutu var. #define ile tamamlarsan output komutlarıyla çalışmanız lazım.
// aşağıdaki tanımları yap sıkıntı olmaz.
#byte TRISA=0x85
#byte TRISB=0x86
#bit RB5=0x06.5
#bit RB4=0x06.4
numeric açıklama hatasıda for döngüsünden
for( ; ; ) veya
while(1) şeklinde değiştirirse hata kalmaz.
 
C nin sorunları öldürüyor beni.
 

Forum istatistikleri

Konular
128,252
Mesajlar
916,210
Kullanıcılar
450,067
Son üye
ERENLER04

Yeni konular

Geri
Üst