DSO138_SourceCodes_v037.rar
[DSO138] / 113-13801.c
1 //////////////////////////////////////////////////////////////////////////////\r
2 //\r
3 //      Filename:       113-13801.c\r
4 //      Version:                \r
5 //      Data:           \r
6 //\r
7 //      Author:         Liu, Zemin\r
8 //      Company:        JYE Tech\r
9 //\r
10 //-----------------------------------------------------------------------------\r
11 //\r
12 //      Target:                 STM32F103C8 \r
13 //      Tool chain:     CodeSourcery G++\r
14 //\r
15 //      Descriptions:   Main firmware for low-cost DSO kit\r
16 //      PCB:            109-13800-00C\r
17 //-----------------------------------------------------------------------------\r
18 //      Required files:\r
19 //\r
20 //-----------------------------------------------------------------------------\r
21 //      ATTENTION: \r
22 //-----------------------------------------------------------------------------\r
23 //      Revision History:\r
24 //\r
25 //\r
26 ///////////////////////////////////////////////////////////////////////////////\r
27 \r
28 #include "stm32f10x.h"\r
29 #include "stm32f10x_conf.h"\r
30 \r
31 #include "Common.h"\r
32 #include "Board.h"\r
33 #include        "Screen.h"\r
34 #include        "Command.h"\r
35 #include        "Eeprom.h"\r
36 \r
37 #include        "libdso138.h"\r
38 \r
39 \r
40 int main (void)\r
41 {\r
42  U16 tmp1, tmp2;\r
43  \r
44  Clock_Init();\r
45  \r
46  Port_Init();\r
47 \r
48  // Check SW4 pin. If the pin is read LOW enter TEST mode\r
49  tmp1 = (PB_Port & PB_Bits) | ~PB_Bits;\r
50  if(!BitTest(tmp1, 0x8000)) {\r
51         // Enter TEST mode\r
52         TestMode();\r
53         }\r
54  \r
55  /* Unlock the Flash Program Erase controller */\r
56  FLASH_Unlock();\r
57 \r
58  /* EEPROM Init */\r
59  EE_Init();\r
60 \r
61  TFT_Init_Ili9341();\r
62  \r
63  USART1_Init();\r
64  uputs((U8 *)"Uart1 Ok\n\r", USART1);\r
65 \r
66  SysTick_Init();\r
67  TIM3_Init();\r
68  TIM4_Init();\r
69 \r
70  ADC2_Init();\r
71  \r
72  AppInit();  \r
73  \r
74  tmp1 = clBlack;\r
75  PutsGenic(24, 120, (U8 *)"FW: 113-13801-037", clWhite, tmp1, &ASC8X16);\r
76  PutsGenic(24, 140, (U8 *)LibVersion, clWhite, tmp1, &ASC8X16);\r
77  PutsGenic(24, 180, (U8 *)"Booting...", clWhite, tmp1, &ASC8X16);\r
78 \r
79  // LED blink twice\r
80  LedBlink();\r
81 \r
82  NVIC_Configuration();\r
83 \r
84  Flags = 0;\r
85  \r
86 // Uncomment the following line to disable display of scope panel\r
87 // NoScopePanel = 1;\r
88  \r
89  while(1) {\r
90 // ============================\r
91 // Note:        Keep this section in the main loop for proper capture engine running\r
92 //              even scope panel display is disabled.\r
93 \r
94         DsoDisplay();\r
95 \r
96         tmp1 = GetDsoStatus();\r
97 \r
98 // --------------------------------------------------------     \r
99         if(BitTest(tmp1, DSO_NormalDisplay)) {\r
100 \r
101                 // Add your diaplay codes here\r
102 \r
103                 \r
104                 }\r
105 // --------------------------------------------------------\r
106 \r
107         if(GTimeout) {\r
108                 GTimeout = 0;\r
109                 StartCapture();\r
110                 }\r
111         \r
112 // ============================ \r
113 \r
114 \r
115         if(BitTest(Keypad.Flags, (1 << KF_DoKeyScan))) {\r
116                 BitClr(Keypad.Flags, (1 << KF_DoKeyScan));\r
117                 // Do key scan\r
118                 KeyScan();\r
119                 }\r
120 \r
121         if(Keypad.KeyCode) {\r
122                 // Process key code\r
123                 KeyProc();\r
124                 Keypad.KeyCode = 0;\r
125                 }\r
126 \r
127         if(GTimer == 0) {\r
128                 if(BitTest(tmp1, DSO_CaptureDone)) {\r
129                         UpdateDisp(Disp_Trace);\r
130                         tmp2 = GetTimebase();\r
131                         if(tmp2 <= TB_1ms) {\r
132                                 // Start next capture           \r
133                                 StartCapture();\r
134                                 }\r
135                         else {\r
136                                 // Lower capture rate\r
137                                 GTimer = 40;\r
138                                 }\r
139                         }\r
140                 }\r
141 \r
142         \r
143         if(BitTest(tmp1, DSO_Rolling)) {\r
144                 Rolling();\r
145                 }\r
146 \r
147         }\r
148  \r
149 }\r
150 \r