OSDN Git Service

ring.c read pointer no.2 add
[scilog/cpu2010.git] / myad.h
1 #ifndef __MYAD_H__
2 #include <p24FJ64GA004.h>
3 #include <libpic30.h>
4
5 #define __MYAD_H__
6
7 #define CS_RCLK PORTAbits.RA7
8 #define CS_CLK  PORTAbits.RA8
9 #define CS_DATA PORTAbits.RA9
10
11 #define AD_CHNUM    6
12 #define AD_CH1_CS   0   // AD CH1のCS番号
13 #define PGA_CH1_CS  6   // PGA CH1のCS番号
14
15 //#define AD_SAMPLE0  400 // AD ICの出力レート [Hz]
16 //#define AD_SAMPLE1  50 // Main CPUに向けて出力するデータのサンプル数 [Hz]
17
18 #define AD_SAMPLE  50 // AD ICの出力レート [Hz]
19
20 // SPI CMD
21 #define ADCMD_SDATAC    0x11
22 #define ADCMD_WREG      0x40
23 #define ADCMD_RDATAC    0x10
24
25 // AD DRDY0 INTフラグ
26 //void ad_drdy0_intf_set(void);
27 //void ad_drdy0_intf_clear(void);
28 //char ad_is_drdy0_intf(void);
29
30 void ad_cs_init(void);
31 inline extern void ad_cs(unsigned char cs)
32 {
33     unsigned char i;
34
35 //CS_CLK = 1;
36     for(i = 16; i > 0; i--) {
37         if (i == cs+1) {
38             CS_DATA = 0;
39         } else {
40             CS_DATA = 1;
41         }
42         asm("NOP");
43         CS_CLK = 1;
44         CS_CLK = 0;
45     }
46     asm("NOP");
47     CS_RCLK = 1;
48     asm("NOP");
49     CS_DATA = 0;
50     asm("NOP");
51     CS_RCLK = 0;
52 }
53
54 inline extern void ad_cs_dis(void){
55     unsigned char i;
56
57     CS_DATA = 1;
58     for(i = 16; i > 0; i--) {
59         CS_CLK = 1;
60         CS_CLK = 0;
61     }
62     asm("NOP");
63     CS_RCLK = 1;
64     asm("NOP");
65     CS_DATA = 0;
66     asm("NOP");
67     CS_RCLK = 0;
68 }
69
70
71 #define ad_reset_dis()  PORTBbits.RB10 = 1; asm("NOP")
72 #define ad_reset_ena()  PORTBbits.RB10 = 0; asm("NOP")
73
74 #define ad_start_dis()  PORTBbits.RB11 = 0; asm("NOP")
75 #define ad_start_ena()  PORTBbits.RB11 = 1; asm("NOP")
76
77 #define ad_is_drdy0_enable()    (PORTBbits.RB12 == 0)
78
79 void ad_reset(void);
80 void ad_start(void);
81 void ad_init(void);
82
83 void ad_spi_send(unsigned char c);
84 unsigned char ad_spi_rcv(void);
85
86 void pga_init(void);
87
88 #endif