Еее, все на мен се случва! Нещо не мога да изкарам 16 битово число от аналогово цифрово преобразуване. Процесора е 18Ф1220. ето го и кода!
#include <18F1220.h>
#FUSES NOWDT, HS, NOPUT, NOPROTECT
#use delay(clock=20000000)
#define adc=10
int16 value;
void blink(){
value = (int16) read_adc();
if (value>100){
output_bit(PIN_A1,1); }
if (value<100){
output_bit(PIN_A1,0);
}
}
#int_RTCC
void RTCC_isr(){
blink();
}
void main()
{
setup_adc_ports(sAN0|VSS_VDD);
//setup_adc_ports(sAN0|VREF_VREF);
setup_adc(ADC_CLOCK_DIV_2); //32
set_adc_channel(0);
setup_wdt(WDT_OFF);
set_tris_A(0b00000001);
set_tris_B(0b00000000);
setup_timer_0(RTCC_DIV_4);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_timer_3(T3_DISABLED|T3_DIV_BY_1);
setup_oscillator(False);
enable_interrupts(INT_RTCC);
enable_interrupts(GLOBAL);
while (TRUE){
}
}
Резултата го гледам в МПЛАБ с ICD2 в debugr mode. Моля, който знае и може да ми помогне