1 | #include <m8c.h>
|
2 | #include <string.h>
|
3 | #include <stdlib.h>
|
4 | #include "PSoCAPI.h"
|
5 |
|
6 |
|
7 | long CS_Config, CS_Current_DC_Offset, CS_Current_Gain, CS_Voltage_DC_Offset, CS_Voltage_Gain;
|
8 |
|
9 |
|
10 |
|
11 | void main(){
|
12 |
|
13 | M8C_EnableGInt ;
|
14 | UART_IntCntl(UART_ENABLE_RX_INT);
|
15 | UART_Start(UART_PARITY_NONE);
|
16 | SPIM_Start(SPIM_SPIM_MODE_0 | SPIM_SPIM_MSB_FIRST);
|
17 |
|
18 |
|
19 | // initialisierung_CS5463
|
20 | SPIM_SendTxData(0b11111111);//sync1
|
21 | SPIM_SendTxData(0b11111111);//sync1
|
22 | SPIM_SendTxData(0b11111111);//sync1
|
23 | SPIM_SendTxData(0b11111110);//sync0
|
24 |
|
25 | //Start_Conversion_continuous
|
26 | SPIM_SendTxData(0b11101000);
|
27 | SPIM_SendTxData(0xFF);
|
28 | SPIM_SendTxData(0xFF);
|
29 | SPIM_SendTxData(0xFF);
|
30 |
|
31 |
|
32 | while(1){
|
33 |
|
34 | if(UART_bCmdCheck()){
|
35 | CS_Config=atol(UART_szGetParam());
|
36 | CS_Current_DC_Offset=atol(UART_szGetParam());
|
37 | CS_Current_Gain=atol(UART_szGetParam());
|
38 | CS_Voltage_DC_Offset=atol(UART_szGetParam());
|
39 | CS_Voltage_Gain=atol(UART_szGetParam());
|
40 | UART_CmdReset();
|
41 | }
|
42 |
|
43 |
|
44 | //////////////////// CS5463 Register beschreiben //////////////////////
|
45 |
|
46 | //Schreibe_CS_Config Register
|
47 | SPIM_SendTxData(0b01000000);
|
48 | SPIM_SendTxData(CS_Config >>16 &0xFF);
|
49 | SPIM_SendTxData(CS_Config >>8 &0xFF);
|
50 | SPIM_SendTxData(CS_Config &0xFF);
|
51 |
|
52 |
|
53 | //Schreibe_CS_Current_DC_Offset
|
54 | SPIM_SendTxData(0b01000010);
|
55 | SPIM_SendTxData(CS_Current_DC_Offset >>16 &0xFF);
|
56 | SPIM_SendTxData(CS_Current_DC_Offset >>8 &0xFF);
|
57 | SPIM_SendTxData(CS_Current_DC_Offset &0xFF);
|
58 |
|
59 |
|
60 | //Schreibe_CS_Current_Gain
|
61 | SPIM_SendTxData(0b01000100);
|
62 | SPIM_SendTxData(CS_Current_Gain >>16 &0xFF);
|
63 | SPIM_SendTxData(CS_Current_Gain >>8 &0xFF);
|
64 | SPIM_SendTxData(CS_Current_Gain &0xFF);
|
65 |
|
66 |
|
67 | //Schreibe_CS_Voltage_DC_Offset
|
68 | SPIM_SendTxData(0b01000110);
|
69 | SPIM_SendTxData(CS_Voltage_DC_Offset >>16 &0xFF);
|
70 | SPIM_SendTxData(CS_Voltage_DC_Offset >>8 &0xFF);
|
71 | SPIM_SendTxData(CS_Voltage_DC_Offset &0xFF);
|
72 |
|
73 | //Schreibe_CS_Voltage_Gain
|
74 | SPIM_SendTxData(0b01000110);
|
75 | SPIM_SendTxData(CS_Voltage_Gain >>16 &0xFF);
|
76 | SPIM_SendTxData(CS_Voltage_Gain >>8 &0xFF);
|
77 | SPIM_SendTxData(CS_Voltage_Gain &0xFF);
|
78 |
|
79 |
|
80 | //////////////////// CS5463 Register Lesen ///////////////////////////
|
81 |
|
82 | //Lese_Instantaneus_Current
|
83 | SPIM_SendTxData(0b00001110);
|
84 | SPIM_SendTxData(0xFF);
|
85 | UART_PutSHexByte(SPIM_bReadRxData());
|
86 | SPIM_SendTxData(0xFF);
|
87 | UART_PutSHexByte(SPIM_bReadRxData());
|
88 | SPIM_SendTxData(0xFF);
|
89 | UART_PutSHexByte(SPIM_bReadRxData());
|
90 |
|
91 | UART_CPutString(":");
|
92 |
|
93 | //Lese_Instantaneus_Voltage
|
94 | SPIM_SendTxData(0b00010000);
|
95 | SPIM_SendTxData(0xFF);
|
96 | UART_PutSHexByte(SPIM_bReadRxData());
|
97 | SPIM_SendTxData(0xFF);
|
98 | UART_PutSHexByte(SPIM_bReadRxData());
|
99 | SPIM_SendTxData(0xFF);
|
100 | UART_PutSHexByte(SPIM_bReadRxData());
|
101 |
|
102 | UART_CPutString(":");
|
103 |
|
104 | //Lese_Instantaneus_Power
|
105 | SPIM_SendTxData(0b00010010);//P
|
106 | SPIM_SendTxData(0xFF);
|
107 | UART_PutSHexByte(SPIM_bReadRxData());
|
108 | SPIM_SendTxData(0xFF);
|
109 | UART_PutSHexByte(SPIM_bReadRxData());
|
110 | SPIM_SendTxData(0xFF);
|
111 | UART_PutSHexByte(SPIM_bReadRxData());
|
112 |
|
113 | UART_PutCRLF();
|
114 | }
|
115 |
|
116 | }
|