📄 ancap1.c
字号:
#device PIC16F877 *=16 ADC=10
#include <16f877.h>
#include <math.h>
#include <stdlib.h>
#fuses hs,nowdt,noprotect,put,nolvp,brownout
#use delay(clock=20000000) // 20 MhZ
#use rs232(baud=38400,parity=N,xmit=PIN_C6, rcv=PIN_C7)
//#use I2C(master, sda=PIN_C4, scl=PIN_C3,NOFORCE)
unsigned int frame1[5];
int ip=0;
byte* ptr;
float e3=0;
int i;
boolean Rev_OK=0;
boolean the_first=0;
//----------------------
#INT_PSP
void psp_isr()
{
int rev_byte=0;
while(!psp_input_full()) ; // Wait data
if ( (!psp_overflow()) )
{
rev_byte = psp_data;
if (ip==0) {Rev_OK=0;}
frame1[ip] = rev_byte;
ip++;
if ((ip==5) && (frame1[0]==252))
{
output_low(PIN_B2); // Disable signal camera when data receive ok
ip=0;
Rev_OK = 1;
the_first=1;
// ptr = (byte*) &e2; // Khoi phuc e2
// for (i=1;i<=4;i++) {*ptr = frame1[i]; ptr++;}
ptr = (byte*) &e3; // Khoi phuc e3
for (i=1;i<=4;i++) {*ptr = frame1[i]; ptr++;}
}
}
}
void main()
{
char s[10];
set_tris_e(0xff); // Port E Input
set_tris_d(0xff);
setup_adc_ports( NO_ANALOGS);
setup_psp(PSP_ENABLED);
enable_interrupts(INT_PSP);
enable_interrupts(GLOBAL);
while (1)
{
printf("%f ",e3);
delay_ms (10);
output_high(pin_b2);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -