ancap1.c

来自「Embedded camera control program.」· C语言 代码 · 共 63 行

C
63
字号
#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 + =
减小字号Ctrl + -
显示快捷键?