grabik
Član broj: 32507 Poruke: 311 ..nge86-128.btcentralplus.com.
|
skinuo sam ccs kompajler.Probaj ovo dole bez ispravki pa javi
#include <16F877.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP
#use delay(clock=18432000) // jel stvarno koristis 18,432MHz kristal ???!!!!
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
long int i,n,b;
char nizi,visi;
float value,c;
void main() {
setup_port_a( ALL_ANALOG );//port a svi ulazi analogni i Vref+ 5V Vref- 0V
setup_adc( ADC_CLOCK_DIV_32 );//trajanje ADC treba da je oko 30us
set_adc_channel( 1 );//ocitava se sa pina RA1
b=1023;//ovo samo radi provere
c=25.456;//radi provere
while (TRUE) {
output_high(PIN_C1);//ledovka mi zasvetli
delay_ms(500);//pauza od pola sekunde
i=read_ADC();//konverzija se izvrsava
value=(float)217/1024;//ostavi ovako u tri dela jer inace ne radi dobro, marfi
value=(float)i*value;//ostavi ovako u tri dela jer inace ne radi dobro, marfi
value=(float)value+23;//ostavi ovako u tri dela jer inace ne radi dobro, marfi
n=(int)value;
nizi=n;
visi=n>>8;
printf("\r\n ovo je samo provera rs232");
printf("\r\n(long)b = %lu ", b);//provera da li salje 1024
printf("\r\n(float)c = %E\r\n", c);//provera da li salje 25.456
printf("\r\n(long)i = %lu ", i);//salje na rs232 sta je ocitano sa adc-a
printf("\r\n(long)n = %lu ", n);//temp u int formatu
printf("\r\n(float)(long)value = %E\r\n", value);//salje temp. kao float
printf("\r\n(float)value = %E\r\n", value);//salje temp. kao float
//slanje sa putc() na rs232
putc(visi);
putc(nizi);
putc(10);
putc(13);
output_low(PIN_C1);//gasi se ledovka
delay_ms(500);
}
}
|