Commit fa0f7a76 authored by 郑萍's avatar 郑萍

Merge branch 'shihao' of http://tyw-server.synology.me:12345/shihao/haojin750tft into zhengping

parents 59809d7a b931f608
...@@ -14,3 +14,9 @@ Firmware/Project/Cmsemicon/BAT32A239/MDK_ARM/RunTong.uvoptx ...@@ -14,3 +14,9 @@ Firmware/Project/Cmsemicon/BAT32A239/MDK_ARM/RunTong.uvoptx
Firmware/Project/Cmsemicon/BAT32A279/MDK_ARM/Listings/HaoJin.map Firmware/Project/Cmsemicon/BAT32A279/MDK_ARM/Listings/HaoJin.map
/Firmware/Project/Cmsemicon/BAT32A279/MDK_ARM/Objects /Firmware/Project/Cmsemicon/BAT32A279/MDK_ARM/Objects
Firmware/Project/Cmsemicon/BAT32A279/MDK_ARM/HaoJin750TFT.uvguix.tyw05
Firmware/Project/Cmsemicon/BAT32A279/MDK_ARM/HaoJin750TFT.uvguix.tyw05
Firmware/Project/Cmsemicon/BAT32A279/MDK_ARM/HaoJin750TFT.uvoptx
Firmware/Project/Cmsemicon/BAT32A279/MDK_ARM/Listings/HaoJin750TFT.map
/Firmware/Project/Cmsemicon/BAT32A279/MDK_ARM/HaoJin750TFT.uvguix.tyw05
/Firmware/Project/Cmsemicon/BAT32A279/MDK_ARM/Listings/HaoJin750TFT.map
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -117,6 +117,11 @@ ...@@ -117,6 +117,11 @@
<pMon>BIN\CMSIS_AGDI.dll</pMon> <pMon>BIN\CMSIS_AGDI.dll</pMon>
</DebugOpt> </DebugOpt>
<TargetDriverDllRegistry> <TargetDriverDllRegistry>
<SetRegEntry>
<Number>0</Number>
<Key>JL2CM3</Key>
<Name>-U69543645 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO7 -FD20000000 -FC1000 -FN2 -FF0BAT32A279KM.FLM -FS00 -FL080000 -FP0($$Device:BAT32A279KM64FB$Flash\BAT32A279KM.FLM) -FF1BAT32A279_DataFlash.FLM -FS1501000 -FL15000 -FP1($$Device:BAT32A279KM64FB$Flash\BAT32A279_DataFlash.FLM)</Name>
</SetRegEntry>
<SetRegEntry> <SetRegEntry>
<Number>0</Number> <Number>0</Number>
<Key>ARMRTXEVENTFLAGS</Key> <Key>ARMRTXEVENTFLAGS</Key>
...@@ -135,7 +140,7 @@ ...@@ -135,7 +140,7 @@
<SetRegEntry> <SetRegEntry>
<Number>0</Number> <Number>0</Number>
<Key>CMSIS_AGDI</Key> <Key>CMSIS_AGDI</Key>
<Name>-X"" -O206 -S0 -C0 -P00000000 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC1000 -FN2 -FF0BAT32A279KM.FLM -FS00 -FL080000 -FP0($$Device:BAT32A279KM64FB$Flash\BAT32A279KM.FLM) -FF1BAT32A279_DataFlash.FLM -FS1501000 -FL15000 -FP1($$Device:BAT32A279KM64FB$Flash\BAT32A279_DataFlash.FLM)</Name> <Name>-X"Any" -UAny -O206 -S0 -C0 -P00000000 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC1000 -FN2 -FF0BAT32A279KM.FLM -FS00 -FL080000 -FP0($$Device:BAT32A279KM64FB$Flash\BAT32A279KM.FLM) -FF1BAT32A279_DataFlash.FLM -FS1501000 -FL15000 -FP1($$Device:BAT32A279KM64FB$Flash\BAT32A279_DataFlash.FLM)</Name>
</SetRegEntry> </SetRegEntry>
<SetRegEntry> <SetRegEntry>
<Number>0</Number> <Number>0</Number>
...@@ -149,12 +154,82 @@ ...@@ -149,12 +154,82 @@
</SetRegEntry> </SetRegEntry>
</TargetDriverDllRegistry> </TargetDriverDllRegistry>
<Breakpoint/> <Breakpoint/>
<WatchWindow1>
<Ww>
<count>0</count>
<WinNumber>1</WinNumber>
<ItemText>UART2_TX,0x10</ItemText>
</Ww>
<Ww>
<count>1</count>
<WinNumber>1</WinNumber>
<ItemText>PowerIgnOnTimeLine,0x0A</ItemText>
</Ww>
<Ww>
<count>2</count>
<WinNumber>1</WinNumber>
<ItemText>Amt630hInitTimerCnts,0x0A</ItemText>
</Ww>
<Ww>
<count>3</count>
<WinNumber>1</WinNumber>
<ItemText>Amt630hInitFinishFlag</ItemText>
</Ww>
<Ww>
<count>4</count>
<WinNumber>1</WinNumber>
<ItemText>u32testodo</ItemText>
</Ww>
<Ww>
<count>5</count>
<WinNumber>1</WinNumber>
<ItemText>AMT630H_Animation_RefreshTime_default,0x0A</ItemText>
</Ww>
<Ww>
<count>6</count>
<WinNumber>1</WinNumber>
<ItemText>VSpeed,0x0A</ItemText>
</Ww>
<Ww>
<count>7</count>
<WinNumber>1</WinNumber>
<ItemText>stADCData,0x0A</ItemText>
</Ww>
<Ww>
<count>8</count>
<WinNumber>1</WinNumber>
<ItemText>PowerIgnOnTimeLine,0x0A</ItemText>
</Ww>
<Ww>
<count>9</count>
<WinNumber>1</WinNumber>
<ItemText>PowerIgnOffTimeLine,0x0A</ItemText>
</Ww>
<Ww>
<count>10</count>
<WinNumber>1</WinNumber>
<ItemText>Len,0x0A</ItemText>
</Ww>
<Ww>
<count>11</count>
<WinNumber>1</WinNumber>
<ItemText>Data,0x10</ItemText>
</Ww>
</WatchWindow1>
<MemoryWindow1>
<Mm>
<WinNumber>1</WinNumber>
<SubType>0</SubType>
<ItemText>0x20002ddc</ItemText>
<AccSizeX>0</AccSizeX>
</Mm>
</MemoryWindow1>
<Tracepoint> <Tracepoint>
<THDelay>0</THDelay> <THDelay>0</THDelay>
</Tracepoint> </Tracepoint>
<DebugFlag> <DebugFlag>
<trace>0</trace> <trace>0</trace>
<periodic>0</periodic> <periodic>1</periodic>
<aLwin>1</aLwin> <aLwin>1</aLwin>
<aCover>0</aCover> <aCover>0</aCover>
<aSer1>0</aSer1> <aSer1>0</aSer1>
...@@ -173,7 +248,7 @@ ...@@ -173,7 +248,7 @@
<aPa1>0</aPa1> <aPa1>0</aPa1>
<AscS4>0</AscS4> <AscS4>0</AscS4>
<aSer4>0</aSer4> <aSer4>0</aSer4>
<StkLoc>0</StkLoc> <StkLoc>1</StkLoc>
<TrcWin>0</TrcWin> <TrcWin>0</TrcWin>
<newCpu>0</newCpu> <newCpu>0</newCpu>
<uProt>0</uProt> <uProt>0</uProt>
...@@ -632,7 +707,7 @@ ...@@ -632,7 +707,7 @@
<Group> <Group>
<GroupName>RTE</GroupName> <GroupName>RTE</GroupName>
<tvExp>0</tvExp> <tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel> <cbSel>0</cbSel>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
...@@ -772,7 +847,7 @@ ...@@ -772,7 +847,7 @@
<Group> <Group>
<GroupName>Application</GroupName> <GroupName>Application</GroupName>
<tvExp>1</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel> <cbSel>0</cbSel>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
...@@ -872,6 +947,54 @@ ...@@ -872,6 +947,54 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File>
<GroupNumber>4</GroupNumber>
<FileNumber>55</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\Source\Application\Data_ESpeed.c</PathWithFileName>
<FilenameWithoutPath>Data_ESpeed.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>4</GroupNumber>
<FileNumber>56</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\Source\Application\Data_ESpeed.h</PathWithFileName>
<FilenameWithoutPath>Data_ESpeed.h</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>4</GroupNumber>
<FileNumber>57</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\Source\Application\Data_VSpeed.c</PathWithFileName>
<FilenameWithoutPath>Data_VSpeed.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>4</GroupNumber>
<FileNumber>58</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\Source\Application\Data_VSpeed.h</PathWithFileName>
<FilenameWithoutPath>Data_VSpeed.h</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group> </Group>
<Group> <Group>
...@@ -882,7 +1005,7 @@ ...@@ -882,7 +1005,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>55</FileNumber> <FileNumber>59</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
...@@ -894,7 +1017,7 @@ ...@@ -894,7 +1017,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>56</FileNumber> <FileNumber>60</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
...@@ -906,7 +1029,7 @@ ...@@ -906,7 +1029,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>57</FileNumber> <FileNumber>61</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
...@@ -918,7 +1041,7 @@ ...@@ -918,7 +1041,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>58</FileNumber> <FileNumber>62</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
...@@ -930,7 +1053,7 @@ ...@@ -930,7 +1053,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>59</FileNumber> <FileNumber>63</FileNumber>
<FileType>4</FileType> <FileType>4</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
...@@ -942,7 +1065,7 @@ ...@@ -942,7 +1065,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>60</FileNumber> <FileNumber>64</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
...@@ -954,7 +1077,7 @@ ...@@ -954,7 +1077,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>61</FileNumber> <FileNumber>65</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
...@@ -966,7 +1089,7 @@ ...@@ -966,7 +1089,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>62</FileNumber> <FileNumber>66</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
...@@ -978,7 +1101,7 @@ ...@@ -978,7 +1101,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>63</FileNumber> <FileNumber>67</FileNumber>
<FileType>4</FileType> <FileType>4</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
...@@ -990,7 +1113,7 @@ ...@@ -990,7 +1113,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>64</FileNumber> <FileNumber>68</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
...@@ -1002,7 +1125,7 @@ ...@@ -1002,7 +1125,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>65</FileNumber> <FileNumber>69</FileNumber>
<FileType>4</FileType> <FileType>4</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
...@@ -1014,7 +1137,7 @@ ...@@ -1014,7 +1137,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>66</FileNumber> <FileNumber>70</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
...@@ -1026,7 +1149,7 @@ ...@@ -1026,7 +1149,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>67</FileNumber> <FileNumber>71</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
...@@ -1038,7 +1161,7 @@ ...@@ -1038,7 +1161,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>68</FileNumber> <FileNumber>72</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
...@@ -1050,7 +1173,7 @@ ...@@ -1050,7 +1173,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>69</FileNumber> <FileNumber>73</FileNumber>
<FileType>4</FileType> <FileType>4</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
...@@ -1062,7 +1185,7 @@ ...@@ -1062,7 +1185,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>70</FileNumber> <FileNumber>74</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
...@@ -1074,7 +1197,7 @@ ...@@ -1074,7 +1197,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>71</FileNumber> <FileNumber>75</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
...@@ -1086,7 +1209,7 @@ ...@@ -1086,7 +1209,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>72</FileNumber> <FileNumber>76</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
...@@ -1098,7 +1221,7 @@ ...@@ -1098,7 +1221,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>73</FileNumber> <FileNumber>77</FileNumber>
<FileType>4</FileType> <FileType>4</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
...@@ -1110,7 +1233,7 @@ ...@@ -1110,7 +1233,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>74</FileNumber> <FileNumber>78</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
...@@ -1122,7 +1245,7 @@ ...@@ -1122,7 +1245,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>75</FileNumber> <FileNumber>79</FileNumber>
<FileType>4</FileType> <FileType>4</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
...@@ -1134,7 +1257,7 @@ ...@@ -1134,7 +1257,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>76</FileNumber> <FileNumber>80</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
...@@ -1146,7 +1269,7 @@ ...@@ -1146,7 +1269,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>77</FileNumber> <FileNumber>81</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
...@@ -1158,7 +1281,7 @@ ...@@ -1158,7 +1281,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>78</FileNumber> <FileNumber>82</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
...@@ -1170,7 +1293,7 @@ ...@@ -1170,7 +1293,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>79</FileNumber> <FileNumber>83</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
...@@ -1182,7 +1305,7 @@ ...@@ -1182,7 +1305,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>80</FileNumber> <FileNumber>84</FileNumber>
<FileType>4</FileType> <FileType>4</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
...@@ -1194,7 +1317,7 @@ ...@@ -1194,7 +1317,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>81</FileNumber> <FileNumber>85</FileNumber>
<FileType>4</FileType> <FileType>4</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
...@@ -1206,7 +1329,7 @@ ...@@ -1206,7 +1329,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>82</FileNumber> <FileNumber>86</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
...@@ -1218,7 +1341,7 @@ ...@@ -1218,7 +1341,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>83</FileNumber> <FileNumber>87</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
...@@ -1230,7 +1353,7 @@ ...@@ -1230,7 +1353,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>84</FileNumber> <FileNumber>88</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
...@@ -1242,7 +1365,7 @@ ...@@ -1242,7 +1365,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>85</FileNumber> <FileNumber>89</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
...@@ -1254,7 +1377,7 @@ ...@@ -1254,7 +1377,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>86</FileNumber> <FileNumber>90</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
...@@ -1266,7 +1389,7 @@ ...@@ -1266,7 +1389,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>87</FileNumber> <FileNumber>91</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
...@@ -1278,7 +1401,7 @@ ...@@ -1278,7 +1401,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>88</FileNumber> <FileNumber>92</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
...@@ -1290,7 +1413,7 @@ ...@@ -1290,7 +1413,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>89</FileNumber> <FileNumber>93</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
...@@ -1302,7 +1425,7 @@ ...@@ -1302,7 +1425,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>90</FileNumber> <FileNumber>94</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
...@@ -1314,121 +1437,229 @@ ...@@ -1314,121 +1437,229 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>91</FileNumber> <FileNumber>95</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\Source\Component\System_Monitor\System_Monitor.h</PathWithFileName> <PathWithFileName>..\..\..\..\Source\Component\Telltales\Telltales_Lib.h</PathWithFileName>
<FilenameWithoutPath>System_Monitor.h</FilenameWithoutPath> <FilenameWithoutPath>Telltales_Lib.h</FilenameWithoutPath>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>92</FileNumber> <FileNumber>96</FileNumber>
<FileType>4</FileType> <FileType>4</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\Source\Component\System_Monitor\System_Monitor.lib</PathWithFileName> <PathWithFileName>..\..\..\..\Source\Component\Telltales\Telltales_Lib.lib</PathWithFileName>
<FilenameWithoutPath>System_Monitor.lib</FilenameWithoutPath> <FilenameWithoutPath>Telltales_Lib.lib</FilenameWithoutPath>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>93</FileNumber> <FileNumber>97</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\Source\Component\System_Monitor\System_Monitor_User.c</PathWithFileName> <PathWithFileName>..\..\..\..\Source\Component\Telltales\Telltales_user.c</PathWithFileName>
<FilenameWithoutPath>System_Monitor_User.c</FilenameWithoutPath> <FilenameWithoutPath>Telltales_user.c</FilenameWithoutPath>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>94</FileNumber> <FileNumber>98</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\Source\Component\System_Monitor\System_Monitor_User.h</PathWithFileName> <PathWithFileName>..\..\..\..\Source\Component\Telltales\Telltales_user.h</PathWithFileName>
<FilenameWithoutPath>System_Monitor_User.h</FilenameWithoutPath> <FilenameWithoutPath>Telltales_user.h</FilenameWithoutPath>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>95</FileNumber> <FileNumber>99</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\Source\Component\Telltales\Telltales_Lib.h</PathWithFileName> <PathWithFileName>..\..\..\..\Source\Component\Components.h</PathWithFileName>
<FilenameWithoutPath>Telltales_Lib.h</FilenameWithoutPath> <FilenameWithoutPath>Components.h</FilenameWithoutPath>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>96</FileNumber> <FileNumber>100</FileNumber>
<FileType>4</FileType> <FileType>4</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\Source\Component\Telltales\Telltales_Lib.lib</PathWithFileName> <PathWithFileName>..\..\..\..\Source\Component\PowerManagement\PowerManagement.lib</PathWithFileName>
<FilenameWithoutPath>Telltales_Lib.lib</FilenameWithoutPath> <FilenameWithoutPath>PowerManagement.lib</FilenameWithoutPath>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>97</FileNumber> <FileNumber>101</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\Source\Component\Telltales\Telltales_user.c</PathWithFileName> <PathWithFileName>..\..\..\..\Source\Component\AMT630H\AMT630H.c</PathWithFileName>
<FilenameWithoutPath>Telltales_user.c</FilenameWithoutPath> <FilenameWithoutPath>AMT630H.c</FilenameWithoutPath>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>98</FileNumber> <FileNumber>102</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\Source\Component\Telltales\Telltales_user.h</PathWithFileName> <PathWithFileName>..\..\..\..\Source\Component\AMT630H\AMT630H.h</PathWithFileName>
<FilenameWithoutPath>Telltales_user.h</FilenameWithoutPath> <FilenameWithoutPath>AMT630H.h</FilenameWithoutPath>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>99</FileNumber> <FileNumber>103</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\Source\Component\AMT630H\GraphicsFunc.c</PathWithFileName>
<FilenameWithoutPath>GraphicsFunc.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>104</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\Source\Component\AMT630H\PicBin.c</PathWithFileName>
<FilenameWithoutPath>PicBin.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>105</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\Source\Component\Components.h</PathWithFileName> <PathWithFileName>..\..\..\..\Source\Component\AMT630H\PicBin.h</PathWithFileName>
<FilenameWithoutPath>Components.h</FilenameWithoutPath> <FilenameWithoutPath>PicBin.h</FilenameWithoutPath>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>100</FileNumber> <FileNumber>106</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\Source\Component\AMT630H\UartProtocol.h</PathWithFileName>
<FilenameWithoutPath>UartProtocol.h</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>107</FileNumber>
<FileType>4</FileType> <FileType>4</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\Source\Component\PowerManagement\PowerManagement.lib</PathWithFileName> <PathWithFileName>..\..\..\..\Source\Component\AMT630H\UartProtocol_V1.32_BAT32A239.lib</PathWithFileName>
<FilenameWithoutPath>PowerManagement.lib</FilenameWithoutPath> <FilenameWithoutPath>UartProtocol_V1.32_BAT32A239.lib</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>108</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\Source\Component\AMT630H\AMT630H_Datas.c</PathWithFileName>
<FilenameWithoutPath>AMT630H_Datas.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>109</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\Source\Component\AMT630H\AMT630H_Datas.h</PathWithFileName>
<FilenameWithoutPath>AMT630H_Datas.h</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>110</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\Source\Component\System_Monitor\System_Monitor.c</PathWithFileName>
<FilenameWithoutPath>System_Monitor.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>111</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\Source\Component\System_Monitor\System_Monitor.h</PathWithFileName>
<FilenameWithoutPath>System_Monitor.h</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>112</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\Source\Component\System_Monitor\System_Monitor_User.c</PathWithFileName>
<FilenameWithoutPath>System_Monitor_User.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>113</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\Source\Component\System_Monitor\System_Monitor_User.h</PathWithFileName>
<FilenameWithoutPath>System_Monitor_User.h</FilenameWithoutPath>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
......
...@@ -138,7 +138,7 @@ ...@@ -138,7 +138,7 @@
</Flash1> </Flash1>
<bUseTDR>1</bUseTDR> <bUseTDR>1</bUseTDR>
<Flash2>BIN\UL2CM3.DLL</Flash2> <Flash2>BIN\UL2CM3.DLL</Flash2>
<Flash3></Flash3> <Flash3>"" ()</Flash3>
<Flash4></Flash4> <Flash4></Flash4>
<pFcarmOut></pFcarmOut> <pFcarmOut></pFcarmOut>
<pFcarmGrp></pFcarmGrp> <pFcarmGrp></pFcarmGrp>
...@@ -668,6 +668,26 @@ ...@@ -668,6 +668,26 @@
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\..\..\Source\Application\Protocol_User.c</FilePath> <FilePath>..\..\..\..\Source\Application\Protocol_User.c</FilePath>
</File> </File>
<File>
<FileName>Data_ESpeed.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\Source\Application\Data_ESpeed.c</FilePath>
</File>
<File>
<FileName>Data_ESpeed.h</FileName>
<FileType>5</FileType>
<FilePath>..\..\..\..\Source\Application\Data_ESpeed.h</FilePath>
</File>
<File>
<FileName>Data_VSpeed.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\Source\Application\Data_VSpeed.c</FilePath>
</File>
<File>
<FileName>Data_VSpeed.h</FileName>
<FileType>5</FileType>
<FilePath>..\..\..\..\Source\Application\Data_VSpeed.h</FilePath>
</File>
</Files> </Files>
</Group> </Group>
<Group> <Group>
...@@ -853,26 +873,6 @@ ...@@ -853,26 +873,6 @@
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\..\..\Source\Component\Simulated_IIC_master\Simulated_IIC_master_Porting.c</FilePath> <FilePath>..\..\..\..\Source\Component\Simulated_IIC_master\Simulated_IIC_master_Porting.c</FilePath>
</File> </File>
<File>
<FileName>System_Monitor.h</FileName>
<FileType>5</FileType>
<FilePath>..\..\..\..\Source\Component\System_Monitor\System_Monitor.h</FilePath>
</File>
<File>
<FileName>System_Monitor.lib</FileName>
<FileType>4</FileType>
<FilePath>..\..\..\..\Source\Component\System_Monitor\System_Monitor.lib</FilePath>
</File>
<File>
<FileName>System_Monitor_User.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\Source\Component\System_Monitor\System_Monitor_User.c</FilePath>
</File>
<File>
<FileName>System_Monitor_User.h</FileName>
<FileType>5</FileType>
<FilePath>..\..\..\..\Source\Component\System_Monitor\System_Monitor_User.h</FilePath>
</File>
<File> <File>
<FileName>Telltales_Lib.h</FileName> <FileName>Telltales_Lib.h</FileName>
<FileType>5</FileType> <FileType>5</FileType>
...@@ -903,6 +903,71 @@ ...@@ -903,6 +903,71 @@
<FileType>4</FileType> <FileType>4</FileType>
<FilePath>..\..\..\..\Source\Component\PowerManagement\PowerManagement.lib</FilePath> <FilePath>..\..\..\..\Source\Component\PowerManagement\PowerManagement.lib</FilePath>
</File> </File>
<File>
<FileName>AMT630H.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\Source\Component\AMT630H\AMT630H.c</FilePath>
</File>
<File>
<FileName>AMT630H.h</FileName>
<FileType>5</FileType>
<FilePath>..\..\..\..\Source\Component\AMT630H\AMT630H.h</FilePath>
</File>
<File>
<FileName>GraphicsFunc.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\Source\Component\AMT630H\GraphicsFunc.c</FilePath>
</File>
<File>
<FileName>PicBin.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\Source\Component\AMT630H\PicBin.c</FilePath>
</File>
<File>
<FileName>PicBin.h</FileName>
<FileType>5</FileType>
<FilePath>..\..\..\..\Source\Component\AMT630H\PicBin.h</FilePath>
</File>
<File>
<FileName>UartProtocol.h</FileName>
<FileType>5</FileType>
<FilePath>..\..\..\..\Source\Component\AMT630H\UartProtocol.h</FilePath>
</File>
<File>
<FileName>UartProtocol_V1.32_BAT32A239.lib</FileName>
<FileType>4</FileType>
<FilePath>..\..\..\..\Source\Component\AMT630H\UartProtocol_V1.32_BAT32A239.lib</FilePath>
</File>
<File>
<FileName>AMT630H_Datas.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\Source\Component\AMT630H\AMT630H_Datas.c</FilePath>
</File>
<File>
<FileName>AMT630H_Datas.h</FileName>
<FileType>5</FileType>
<FilePath>..\..\..\..\Source\Component\AMT630H\AMT630H_Datas.h</FilePath>
</File>
<File>
<FileName>System_Monitor.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\Source\Component\System_Monitor\System_Monitor.c</FilePath>
</File>
<File>
<FileName>System_Monitor.h</FileName>
<FileType>5</FileType>
<FilePath>..\..\..\..\Source\Component\System_Monitor\System_Monitor.h</FilePath>
</File>
<File>
<FileName>System_Monitor_User.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\Source\Component\System_Monitor\System_Monitor_User.c</FilePath>
</File>
<File>
<FileName>System_Monitor_User.h</FileName>
<FileType>5</FileType>
<FilePath>..\..\..\..\Source\Component\System_Monitor\System_Monitor_User.h</FilePath>
</File>
</Files> </Files>
</Group> </Group>
<Group> <Group>
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -464,12 +464,12 @@ ARM Macro Assembler Page 8 ...@@ -464,12 +464,12 @@ ARM Macro Assembler Page 8
00000000 00000000
Command Line: --debug --xref --diag_suppress=9931 --cpu=Cortex-M0+ --apcs=inter Command Line: --debug --xref --diag_suppress=9931 --cpu=Cortex-M0+ --apcs=inter
work --depend=.\objects\startup_bat32a279.d -o.\objects\startup_bat32a279.o -I. work --depend=.\objects\startup_bat32a279.d -o.\objects\startup_bat32a279.o -I.
\RTE\Device\BAT32A279KM64FB -I.\RTE\_HaoJin750TFT -IC:\Users\Administrator\AppD \RTE\Device\BAT32A279KM64FB -I.\RTE\_HaoJin750TFT -IC:\Users\tyw05\AppData\Loca
ata\Local\Arm\Packs\ARM\CMSIS\5.8.0\CMSIS\Core\Include -IC:\Users\Administrator l\Arm\Packs\ARM\CMSIS\5.8.0\CMSIS\Core\Include -IC:\Users\tyw05\AppData\Local\A
\AppData\Local\Arm\Packs\Cmsemicon\BAT32A279\1.0.4\Device\Include --predefine=" rm\Packs\Cmsemicon\BAT32A279\1.0.4\Device\Include --predefine="__MICROLIB SETA
__MICROLIB SETA 1" --predefine="__UVISION_VERSION SETA 535" --predefine="_RTE_ 1" --predefine="__UVISION_VERSION SETA 535" --predefine="_RTE_ SETA 1" --predef
SETA 1" --predefine="_RTE_ SETA 1" --list=.\listings\startup_bat32a279.lst RTE\ ine="_RTE_ SETA 1" --list=.\listings\startup_bat32a279.lst RTE\Device\BAT32A279
Device\BAT32A279KM64FB\startup_BAT32A279.s KM64FB\startup_BAT32A279.s
......
...@@ -125,7 +125,7 @@ __Vectors_Size EQU __Vectors_End - __Vectors ...@@ -125,7 +125,7 @@ __Vectors_Size EQU __Vectors_End - __Vectors
Reset_Handler PROC Reset_Handler PROC
EXPORT Reset_Handler [WEAK] EXPORT Reset_Handler [WEAK]
IMPORT SystemInit IMPORT SystemInit
IMPORT __main IMPORT __main
LDR R0, =SystemInit LDR R0, =SystemInit
BLX R0 BLX R0
LDR R0, =__main LDR R0, =__main
......
#include "Backlight.h"
#include "BackLight.h"
#include "Components.h" #include "Components.h"
#define BACK_LIGHT_DAY 600 typedef struct
#define BACK_LIGHT_NIGHT 200 {
#define BACK_LIGHT_Val_1 100 Light_uint16_t Temperature; /* 温度 */
#define BACK_LIGHT_Val_2 200 Light_uint16_t Resistance; /* 阻值 */
#define BACK_LIGHT_Val_3 400 } _st_Backlight;
#define BACK_LIGHT_Val_4 600
#define BACK_LIGHT_Val_5 800 typedef struct
{
Light_uint16_t BacklightLevel; /* 背光等级 */
Light_uint16_t BacklightDuty; /* 背光占空比 */
} _st_BacklightLevel;
#define Backlight_Max 10
#define BacklightLevel_Max 10
_st_Backlight BacklightTable[Backlight_Max] =
{
/*温度 阻值 */
{550, 2708},
{600, 2602},
{650, 2500},
{700, 2043},
{750, 2310},
{800, 2221},
{850, 2136},
{900, 2055},
{950, 1977},
{1000, 1902},
};
_st_BacklightLevel BacklightLevelTable[BacklightLevel_Max] =
{
/*背光等级 背光占空比 */
{1, 100},
{2, 200},
{3, 300},
{4, 400},
{5, 500},
};
Light_uint16_t GetBacklightDutyByLevel(Light_uint16_t level)
{
for (Light_uint8_t i = 0; i < BacklightLevel_Max; ++i)
{
if (BacklightLevelTable[i].BacklightLevel == level)
{
return BacklightLevelTable[i].BacklightDuty;
}
}
return 0;
}
typedef void (*SetPwm)(Light_uint16_t Pwm);
typedef Light_uint8_t (*SetPwmEnable)(void);
typedef Light_uint8_t (*SetPwmLevel)(void);
typedef Light_uint16_t (*NtcRes)(void);
_Light g_Light; typedef struct
{
SetPwm SetPwmCbk; /* 设置PWM回调函数 */
SetPwmEnable SetPwmEnCbk; /* 设置PWM使能回调函数 */
SetPwmLevel SetPwmLevelCbk; /* 背光等级回调函数 */
NtcRes NtcResCbk; /* 获取电阻值回调函数 */
} BackLightExtPara;
void BackLight_Init(void) typedef struct
{ {
MenuInfor.BackLight_Val = BackLight_Val_2; SetPwm SetPwmCbk; /* 设置PWM回调函数 */
g_Light.Light_Auto = 0XFFFF; SetPwmEnable SetPwmEnCbk; /* 设置PWM使能回调函数 */
SetPwmLevel SetPwmLevelCbk; /* 背光等级回调函数 */
NtcRes NtcResCbk;
Light_uint8_t BacklightEn; /* 背光使能 */
Light_uint16_t BacklightPwm; /* 背光PWM */
Light_uint16_t BacklightLevel; /* 背光等级 */
} _Backlight_Op;
_Backlight_Op Backlight_Operate;
/* 设置PWM回调函数 */
void Backlight_SetPwm(Light_uint16_t Pwm)
{
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, Pwm);
} }
void BackLight_Process(void) /* 设置PWM使能回调函数 */
Light_uint8_t Backlight_SetPwmEn(void)
{ {
if (SYS_OPR_STAT_IGN_ON)
return 1;
}
/* 背光等级回调函数 */
Light_uint8_t Backlight_SetPwmLevel(void)
{
return 1;
}
/* 获取电阻值回调函数 */
Light_uint8_t Backlight_NtcRes(void)
{
return 1;
}
void Backlight_Init(BackLightExtPara *backlightInit)
{
Backlight_Operate.SetPwmCbk = backlightInit->SetPwmCbk;
Backlight_Operate.SetPwmEnCbk = backlightInit->SetPwmEnCbk;
Backlight_Operate.SetPwmLevelCbk = backlightInit->SetPwmLevelCbk;
Backlight_Operate.NtcResCbk = backlightInit->NtcResCbk;
}
void Backlight_KL30_Wakeup_Init(void)
{
BackLightExtPara pFunc;
pFunc.SetPwmCbk = Backlight_SetPwm;
pFunc.SetPwmEnCbk = Backlight_SetPwmEn;
pFunc.SetPwmLevelCbk = Backlight_SetPwmLevel;
pFunc.NtcResCbk = Backlight_NtcRes;
Backlight_Init(&pFunc);
}
/**
* 根据给定的背光表和输入电阻值,获取对应的温度值。
* 这个函数通过线性插值方法在背光表中查找与输入电阻最接近的温度值。
* @param backlightTable 背光表,包含电阻和对应温度的数组。
* @param size 背光表的大小,即数组的元素个数。
* @param input 输入的电阻值。
* @return 返回对应的温度值。
*/
Light_uint16_t Get_Ntc_Temp(_st_Backlight *backlightTable, Light_uint8_t size, Light_uint16_t input)
{
Light_uint16_t result = 0;
Light_uint32_t temp = 0;
Light_uint8_t i = 0;
if (input >= backlightTable[0].Resistance)
{
result = backlightTable[0].Temperature;
}
else if (input <= backlightTable[size - 1].Resistance)
{
result = backlightTable[size - 1].Temperature;
}
else
{ {
if(MenuInfor.BackLight_Val == BackLight_Val_A) for (i = 0; i < size - 1; i++)
{ {
//g_Light.Light_Auto = ALS_Get_Data1(); if ((input < backlightTable[i].Resistance) && (input >= backlightTable[i + 1].Resistance))
if (g_Light.Light_Auto >= 1000)
{ {
g_Light.Light_Auto = 1000; temp = backlightTable[i + 1].Temperature - backlightTable[i].Temperature;
temp *= (backlightTable[i].Resistance - input);
temp /= (backlightTable[i].Resistance - backlightTable[i + 1].Resistance);
temp += backlightTable[i].Temperature;
result = (Light_uint16_t)temp;
break;
} }
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, g_Light.Light_Auto);
} }
else if(MenuInfor.BackLight_Val == BackLight_Val_1) }
return result;
}
Light_uint16_t Get_Pwm_Factor_Optimized(Light_uint16_t CurrentTemp)
{
if (CurrentTemp >= 900)
{
return 10;
}
if (CurrentTemp >= 880 && CurrentTemp <= 890)
{
return 20;
}
if (CurrentTemp >= 850 && CurrentTemp <= 860)
{
return 70;
}
if (CurrentTemp >= 800 && CurrentTemp <= 830)
{
return 75;
}
if (CurrentTemp >= 750 && CurrentTemp <= 780)
{
return 80;
}
if (CurrentTemp >= 700 && CurrentTemp <= 730)
{
return 85;
}
if (CurrentTemp >= 650 && CurrentTemp <= 680)
{
return 90;
}
if (CurrentTemp >= 600 && CurrentTemp <= 630)
{
return 95;
}
if (CurrentTemp < 580)
{
return 100;
}
return 100;
}
typedef struct
{
Light_uint8_t destFactor;
Light_uint8_t curFactor;
Light_uint16_t NtcDelayTimer;
Light_uint16_t u16DialcurDuty;
Light_uint16_t u16DialdestDuty;
Light_uint16_t u16DialDampingTimer;
} _st_BacklightFactor_Ctrl;
_st_BacklightFactor_Ctrl BacklightFactorCtrl;
/**
* @brief 实现数据的渐变效果
* 该函数用于更新当前值,使其逐渐接近目标值,渐变的步长由step参数控制。同时,通过timer参数来实现一定的延迟效果,
* 仅当计时器达到或超过预设的timedelay时,才会进行一次渐变操作。这有助于平滑数据的变化,避免突变。
* @param cur 当前值的指针,函数将更新这个值
* @param dest 目标值,当前值将逐渐变化到这个值
* @param step 每次变化的步长
* @param timer 计时器的指针,用于实现变化的延迟
* @param timedelay 延迟的时间阈值,当计时器达到或超过这个值时,才会进行变化
*/
void U16_Data_Gradient(Light_uint16_t *cur, Light_uint16_t dest, Light_uint16_t step, Light_uint16_t *timer, const Light_uint16_t timedelay)
{
if (*cur > dest)
{
if ((*cur - dest) > step)
{ {
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, BACK_LIGHT_Val_1); if (*timer >= timedelay)
{
(*cur) -= step;
(*timer) = 0;
}
else
{
(*timer)++;
}
} }
else if(MenuInfor.BackLight_Val == BackLight_Val_2) else
{ {
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, BACK_LIGHT_Val_2); *cur = dest;
*timer = 0;
} }
else if(MenuInfor.BackLight_Val == BackLight_Val_3) }
else
{
if ((dest - *cur) > step)
{ {
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, BACK_LIGHT_Val_3); if (*timer >= timedelay)
{
(*cur) += step;
(*timer) = 0;
}
else
{
(*timer)++;
}
} }
else if(MenuInfor.BackLight_Val == BackLight_Val_4) else
{ {
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, BACK_LIGHT_Val_4); *cur = dest;
*timer = 0;
} }
else if(MenuInfor.BackLight_Val == BackLight_Val_5) }
}
void BackLight_Service(void)
{
Light_uint16_t CurrentTemp = 0;
Light_uint16_t Factor = 0;
if (Backlight_Operate.NtcResCbk != Backlight_NULL)
{
CurrentTemp = Get_Ntc_Temp(BacklightTable, sizeof(BacklightTable) / sizeof(Light_uint16_t), Backlight_Operate.NtcResCbk());
}
else
{
CurrentTemp = 0XFFFF; /* 无效不执行NTC策略 */
}
/* 根据外部传入背光等级获取对应占空比 */
if (Backlight_Operate.SetPwmLevelCbk != Backlight_NULL)
{
Backlight_Operate.BacklightPwm = GetBacklightDutyByLevel(Backlight_Operate.SetPwmLevelCbk());
}
if (Backlight_Operate.SetPwmEnCbk != Backlight_NULL)
{
Backlight_Operate.BacklightEn = Backlight_Operate.SetPwmEnCbk();
}
if (Backlight_Operate.BacklightEn == 1)
{
if (CurrentTemp != 0XFFFF)
{ {
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, BACK_LIGHT_Val_5);
BacklightFactorCtrl.destFactor = Get_Pwm_Factor_Optimized(CurrentTemp);
if ((BacklightFactorCtrl.curFactor < BacklightFactorCtrl.destFactor) && (CurrentTemp <= BacklightTable[0].Temperature))
{
if (BacklightFactorCtrl.NtcDelayTimer <= 400)
BacklightFactorCtrl.NtcDelayTimer++;
else
{
BacklightFactorCtrl.NtcDelayTimer = 0;
BacklightFactorCtrl.curFactor++;
}
if (BacklightFactorCtrl.curFactor >= BacklightFactorCtrl.destFactor)
BacklightFactorCtrl.curFactor = BacklightFactorCtrl.destFactor;
}
else if (BacklightFactorCtrl.curFactor > BacklightFactorCtrl.destFactor)
{
if (BacklightFactorCtrl.NtcDelayTimer <= 200)
BacklightFactorCtrl.NtcDelayTimer++;
else
{
BacklightFactorCtrl.NtcDelayTimer = 0;
BacklightFactorCtrl.curFactor--;
}
if (BacklightFactorCtrl.curFactor <= BacklightFactorCtrl.destFactor)
BacklightFactorCtrl.curFactor = BacklightFactorCtrl.destFactor;
}
BacklightFactorCtrl.u16DialdestDuty = BacklightFactorCtrl.curFactor * BacklightFactorCtrl.curFactor / 100;
if (BacklightFactorCtrl.u16DialdestDuty < 50)
{
BacklightFactorCtrl.u16DialdestDuty = 50;
}
if (CurrentTemp <= BacklightTable[0].Temperature)
{
BacklightFactorCtrl.u16DialcurDuty = BacklightFactorCtrl.u16DialdestDuty;
}
else
{
if (BacklightFactorCtrl.u16DialcurDuty < 100)
{
BacklightFactorCtrl.u16DialcurDuty = BacklightFactorCtrl.u16DialdestDuty;
}
else
{
U16_Data_Gradient((Light_uint16_t *)&BacklightFactorCtrl.u16DialcurDuty, BacklightFactorCtrl.u16DialdestDuty, 1u, (Light_uint16_t *)&BacklightFactorCtrl.u16DialDampingTimer, 1u);
}
}
Backlight_Operate.BacklightPwm = BacklightFactorCtrl.u16DialcurDuty;
Backlight_Operate.SetPwmCbk(Backlight_Operate.BacklightPwm);
} }
else else
{ {
; /* 无NTC策略 直接根据当前背光等级调整PWM */
Backlight_Operate.SetPwmCbk(Backlight_Operate.BacklightPwm);
} }
} }
else else
{ {
g_Light.Light_Auto = 0; Backlight_Operate.SetPwmCbk(0);
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, 0);
} }
} }
\ No newline at end of file
#ifndef _BACKLIGHT_H_ #ifndef _BACKLIGHT_H_
#define _BACKLIGHT_H_ #define _BACKLIGHT_H_
#include "common.h"
typedef struct
{
uint16_t Light_Auto;
} _Light;
extern _Light g_Light;
void BackLight_Init(void); #ifdef Platform_16Bit
void BackLight_Process(void); #define Light_uint8_t unsigned char
#define Light_uint16_t unsigned int
#define Light_uint32_t unsigned long
#else
#define Light_uint8_t unsigned char
#define Light_uint16_t unsigned short
#define Light_uint32_t unsigned int
#define Light_uint64_t unsigned long long
#endif #endif
#ifndef Backlight_NULL
#define Backlight_NULL ( void * )0u
#endif /* NULL */
void Backlight_KL30_Wakeup_Init(void);
#endif
\ No newline at end of file
#include "CAN_CH0_CAN_Communication_Matrix.h"
/* 2024/06/19 19:37:20 */
st_CanMsgOp CAN_CH0_CanMsgOp;
st_CanMsgTxOp CAN_CH0_CanMsgTxOp;
#define CAN_CH0 &CAN_CH0_CanMsgOp
const st_CAN_SendAttribute CAN_CH0_CANSendAttr[CAN_CH0_ID_SEND_TOTAL] =
{
{0}
};
const st_CANMsgAttribute CAN_CH0_CAN_MSG_CONST_ARRAY[CAN_CH0_ID_TOTAL_MAX] =
{
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
5000ul,
0x101ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
5000ul,
0x111ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
5000ul,
0x401ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
5000ul,
0x402ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
5000ul,
0x37Bul,
(( void * )0),
(( void * )0),
(( void * )0),
},
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
5000ul,
0x12Bul,
(( void * )0),
(( void * )0),
(( void * )0),
},
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
5000ul,
0x450ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
};
uint8_t Get_CAN_CH0_ID_101_Sig_ECU_101_Checksum(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_101_Msg_Count, 7u) >> 0u) & 0xFFu));
}
uint8_t Get_CAN_CH0_ID_101_Sig_ECU_101_Livecounter(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_101_Msg_Count, 6u) >> 0u) & 0x0Fu));
}
uint8_t Get_CAN_CH0_ID_101_Sig_ECU_Engine_Temperature_State(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_101_Msg_Count, 6u) >> 7u) & 0x01u));
}
uint8_t Get_CAN_CH0_ID_101_Sig_ECU_Throttle_Position_State(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_101_Msg_Count, 6u) >> 6u) & 0x01u));
}
uint8_t Get_CAN_CH0_ID_101_Sig_ECU_Vehicle_Speed_State(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_101_Msg_Count, 6u) >> 5u) & 0x01u));
}
uint8_t Get_CAN_CH0_ID_101_Sig_ECU_Engine_Speed_State(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_101_Msg_Count, 6u) >> 4u) & 0x01u));
}
uint16_t Get_CAN_CH0_ID_101_Sig_ECU_Engine_Temperature(void)
{
return (((uint16_t)((uint16_t)((uint16_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_101_Msg_Count, 4u) >> 0u) & 0xFFu) << 8u) + \
((uint16_t)((uint16_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_101_Msg_Count, 5u) >> 0u) & 0xFFu));
}
uint8_t Get_CAN_CH0_ID_101_Sig_ECU_Throttle_Position(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_101_Msg_Count, 3u) >> 0u) & 0xFFu));
}
uint8_t Get_CAN_CH0_ID_101_Sig_ECU_Vehicle_Speed(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_101_Msg_Count, 2u) >> 0u) & 0xFFu));
}
uint16_t Get_CAN_CH0_ID_101_Sig_ECU_Engine_Speed(void)
{
return (((uint16_t)((uint16_t)((uint16_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_101_Msg_Count, 0u) >> 0u) & 0xFFu) << 8u) + \
((uint16_t)((uint16_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_101_Msg_Count, 1u) >> 0u) & 0xFFu));
}
uint8_t Get_CAN_CH0_ID_111_Sig_ISG_111_Checksum(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_111_Msg_Count, 7u) >> 0u) & 0xFFu));
}
uint8_t Get_CAN_CH0_ID_111_Sig_ISG_111_Livecounter(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_111_Msg_Count, 6u) >> 0u) & 0x0Fu));
}
uint8_t Get_CAN_CH0_ID_111_Sig_ISG_Tair_Enable(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_111_Msg_Count, 4u) >> 6u) & 0x01u));
}
uint8_t Get_CAN_CH0_ID_111_Sig_ISG_Power_Enable(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_111_Msg_Count, 4u) >> 4u) & 0x03u));
}
uint8_t Get_CAN_CH0_ID_111_Sig_ISG_SideStand(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_111_Msg_Count, 4u) >> 3u) & 0x01u));
}
uint8_t Get_CAN_CH0_ID_111_Sig_ISG_Power(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_111_Msg_Count, 4u) >> 2u) & 0x01u));
}
uint8_t Get_CAN_CH0_ID_111_Sig_ISG_Ready(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_111_Msg_Count, 4u) >> 1u) & 0x01u));
}
uint8_t Get_CAN_CH0_ID_111_Sig_ISG_Batt(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_111_Msg_Count, 4u) >> 0u) & 0x01u));
}
uint8_t Get_CAN_CH0_ID_111_Sig_ISG_Engine_Autostop_State(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_111_Msg_Count, 3u) >> 0u) & 0x01u));
}
uint8_t Get_CAN_CH0_ID_111_Sig_ISG_Engine_InjIgn_Cutoff_State(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_111_Msg_Count, 2u) >> 0u) & 0x01u));
}
uint8_t Get_CAN_CH0_ID_111_Sig_ISG_Engine_Autostop(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_111_Msg_Count, 1u) >> 0u) & 0x01u));
}
uint8_t Get_CAN_CH0_ID_111_Sig_ISG_Engine_InjIgn_Cutoff(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_111_Msg_Count, 0u) >> 0u) & 0x01u));
}
uint8_t Get_CAN_CH0_ID_401_Sig_ECU_401_Checksum(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_401_Msg_Count, 7u) >> 0u) & 0xFFu));
}
uint8_t Get_CAN_CH0_ID_401_Sig_ECU_401_Livecounter(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_401_Msg_Count, 6u) >> 0u) & 0x0Fu));
}
uint16_t Get_CAN_CH0_ID_401_Sig_ECU_Fuel_Consumption(void)
{
return (((uint16_t)((uint16_t)((uint16_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_401_Msg_Count, 3u) >> 0u) & 0xFFu) << 8u) + \
((uint16_t)((uint16_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_401_Msg_Count, 4u) >> 0u) & 0xFFu));
}
uint8_t Get_CAN_CH0_ID_401_Sig_ECU_Battery_Voltage(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_401_Msg_Count, 2u) >> 0u) & 0xFFu));
}
uint16_t Get_CAN_CH0_ID_401_Sig_ECU_Environment_Presure(void)
{
return (((uint16_t)((uint16_t)((uint16_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_401_Msg_Count, 0u) >> 0u) & 0xFFu) << 8u) + \
((uint16_t)((uint16_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_401_Msg_Count, 1u) >> 0u) & 0xFFu));
}
uint8_t Get_CAN_CH0_ID_402_Sig_ECU_Warning_Lamp(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_402_Msg_Count, 7u) >> 0u) & 0xFFu));
}
uint8_t Get_CAN_CH0_ID_402_Sig_ECU_DTCL2(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_402_Msg_Count, 6u) >> 0u) & 0xFFu));
}
uint8_t Get_CAN_CH0_ID_402_Sig_ECU_DTCM2(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_402_Msg_Count, 5u) >> 0u) & 0xFFu));
}
uint8_t Get_CAN_CH0_ID_402_Sig_ECU_DTCH2(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_402_Msg_Count, 4u) >> 0u) & 0xFFu));
}
uint8_t Get_CAN_CH0_ID_402_Sig_ECU_DTC1Amnt(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_402_Msg_Count, 3u) >> 0u) & 0xFFu));
}
uint8_t Get_CAN_CH0_ID_402_Sig_ECU_DTCL1(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_402_Msg_Count, 2u) >> 0u) & 0xFFu));
}
uint8_t Get_CAN_CH0_ID_402_Sig_ECU_DTCM1(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_402_Msg_Count, 1u) >> 0u) & 0xFFu));
}
uint8_t Get_CAN_CH0_ID_402_Sig_ECU_DTCH1(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_402_Msg_Count, 0u) >> 0u) & 0xFFu));
}
uint8_t Get_CAN_CH0_ID_37B_Sig_TCS_37B_Checksum(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_37B_Msg_Count, 7u) >> 0u) & 0xFFu));
}
uint8_t Get_CAN_CH0_ID_37B_Sig_TCS_37B_Livecounter(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_37B_Msg_Count, 6u) >> 0u) & 0x0Fu));
}
uint8_t Get_CAN_CH0_ID_37B_Sig_TCS_Control(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_37B_Msg_Count, 2u) >> 7u) & 0x01u));
}
uint16_t Get_CAN_CH0_ID_37B_Sig_TCS_Target_Torque(void)
{
return (((uint16_t)((uint16_t)((uint16_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_37B_Msg_Count, 0u) >> 0u) & 0xFFu) << 8u) + \
((uint16_t)((uint16_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_37B_Msg_Count, 1u) >> 0u) & 0xFFu));
}
uint8_t Get_CAN_CH0_ID_12B_Sig_Abs_warning_lamp(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_12B_Msg_Count, 4u) >> 1u) & 0x03u));
}
uint8_t Get_CAN_CH0_ID_450_Sig_Dashboard_TCSFunSwitch(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_450_Msg_Count, 1u) >> 0u) & 0x0Fu));
}
uint8_t Get_CAN_CH0_ID_450_Sig_ABSOFF_Selection(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CH0_450_Msg_Count, 0u) >> 0u) & 0x01u));
}
uint8_t Co_Can_ConvertSubID_CAN_CH0(uint32_t MsgID)
{
uint8_t u8Result = CAN_CH0_ID_TOTAL_MAX;
switch (MsgID)
{
case CAN_CH0_ID_CH0_101_Msg:
u8Result = CAN_CH0_ID_CH0_101_Msg_Count;
break;
case CAN_CH0_ID_CH0_111_Msg:
u8Result = CAN_CH0_ID_CH0_111_Msg_Count;
break;
case CAN_CH0_ID_CH0_401_Msg:
u8Result = CAN_CH0_ID_CH0_401_Msg_Count;
break;
case CAN_CH0_ID_CH0_402_Msg:
u8Result = CAN_CH0_ID_CH0_402_Msg_Count;
break;
case CAN_CH0_ID_CH0_37B_Msg:
u8Result = CAN_CH0_ID_CH0_37B_Msg_Count;
break;
case CAN_CH0_ID_CH0_12B_Msg:
u8Result = CAN_CH0_ID_CH0_12B_Msg_Count;
break;
case CAN_CH0_ID_CH0_450_Msg:
u8Result = CAN_CH0_ID_CH0_450_Msg_Count;
break;
default :
u8Result = CAN_CH0_ID_TOTAL_MAX;
break;
}
return u8Result;
}
#ifndef CAN_CH0_CAN_COMMUNICATION_MATRIX_H_
#define CAN_CH0_CAN_COMMUNICATION_MATRIX_H_
#include "Components.h"
#include "CAN_Signal\CAN_Lib.h"
extern st_CanMsgOp CAN_CH0_CanMsgOp;
extern st_CanMsgTxOp CAN_CH0_CanMsgTxOp;
typedef enum
{
CAN_CH0_ID_CH0_101_Msg_Count,
CAN_CH0_ID_CH0_111_Msg_Count,
CAN_CH0_ID_CH0_401_Msg_Count,
CAN_CH0_ID_CH0_402_Msg_Count,
CAN_CH0_ID_CH0_37B_Msg_Count,
CAN_CH0_ID_CH0_12B_Msg_Count,
CAN_CH0_ID_CH0_450_Msg_Count,
CAN_CH0_ID_TOTAL_MAX,
} CAN_CH0_CAN_MSG_ID_t;
typedef enum
{
TEST,
CAN_CH0_ID_SEND_TOTAL,
} CAN_CH0_CAN_MSG_SEND_ID_t;
extern const st_CANMsgAttribute CAN_CH0_CAN_MSG_CONST_ARRAY[CAN_CH0_ID_TOTAL_MAX] ;
extern const st_CAN_SendAttribute CAN_CH0_CANSendAttr[CAN_CH0_ID_SEND_TOTAL] ;
#define CAN_CH0_ID_CH0_101_Msg 0x101ul
#define CAN_CH0_ID_CH0_111_Msg 0x111ul
#define CAN_CH0_ID_CH0_401_Msg 0x401ul
#define CAN_CH0_ID_CH0_402_Msg 0x402ul
#define CAN_CH0_ID_CH0_37B_Msg 0x37Bul
#define CAN_CH0_ID_CH0_12B_Msg 0x12Bul
#define CAN_CH0_ID_CH0_450_Msg 0x450ul
extern uint8_t Get_CAN_CH0_ID_101_Sig_ECU_101_Checksum(void);
extern uint8_t Get_CAN_CH0_ID_101_Sig_ECU_101_Livecounter(void);
extern uint8_t Get_CAN_CH0_ID_101_Sig_ECU_Engine_Temperature_State(void);
extern uint8_t Get_CAN_CH0_ID_101_Sig_ECU_Throttle_Position_State(void);
extern uint8_t Get_CAN_CH0_ID_101_Sig_ECU_Vehicle_Speed_State(void);
extern uint8_t Get_CAN_CH0_ID_101_Sig_ECU_Engine_Speed_State(void);
extern uint16_t Get_CAN_CH0_ID_101_Sig_ECU_Engine_Temperature(void);
extern uint8_t Get_CAN_CH0_ID_101_Sig_ECU_Throttle_Position(void);
extern uint8_t Get_CAN_CH0_ID_101_Sig_ECU_Vehicle_Speed(void);
extern uint16_t Get_CAN_CH0_ID_101_Sig_ECU_Engine_Speed(void);
extern uint8_t Get_CAN_CH0_ID_111_Sig_ISG_111_Checksum(void);
extern uint8_t Get_CAN_CH0_ID_111_Sig_ISG_111_Livecounter(void);
extern uint8_t Get_CAN_CH0_ID_111_Sig_ISG_Tair_Enable(void);
extern uint8_t Get_CAN_CH0_ID_111_Sig_ISG_Power_Enable(void);
extern uint8_t Get_CAN_CH0_ID_111_Sig_ISG_SideStand(void);
extern uint8_t Get_CAN_CH0_ID_111_Sig_ISG_Power(void);
extern uint8_t Get_CAN_CH0_ID_111_Sig_ISG_Ready(void);
extern uint8_t Get_CAN_CH0_ID_111_Sig_ISG_Batt(void);
extern uint8_t Get_CAN_CH0_ID_111_Sig_ISG_Engine_Autostop_State(void);
extern uint8_t Get_CAN_CH0_ID_111_Sig_ISG_Engine_InjIgn_Cutoff_State(void);
extern uint8_t Get_CAN_CH0_ID_111_Sig_ISG_Engine_Autostop(void);
extern uint8_t Get_CAN_CH0_ID_111_Sig_ISG_Engine_InjIgn_Cutoff(void);
extern uint8_t Get_CAN_CH0_ID_401_Sig_ECU_401_Checksum(void);
extern uint8_t Get_CAN_CH0_ID_401_Sig_ECU_401_Livecounter(void);
extern uint16_t Get_CAN_CH0_ID_401_Sig_ECU_Fuel_Consumption(void);
extern uint8_t Get_CAN_CH0_ID_401_Sig_ECU_Battery_Voltage(void);
extern uint16_t Get_CAN_CH0_ID_401_Sig_ECU_Environment_Presure(void);
extern uint8_t Get_CAN_CH0_ID_402_Sig_ECU_Warning_Lamp(void);
extern uint8_t Get_CAN_CH0_ID_402_Sig_ECU_DTCL2(void);
extern uint8_t Get_CAN_CH0_ID_402_Sig_ECU_DTCM2(void);
extern uint8_t Get_CAN_CH0_ID_402_Sig_ECU_DTCH2(void);
extern uint8_t Get_CAN_CH0_ID_402_Sig_ECU_DTC1Amnt(void);
extern uint8_t Get_CAN_CH0_ID_402_Sig_ECU_DTCL1(void);
extern uint8_t Get_CAN_CH0_ID_402_Sig_ECU_DTCM1(void);
extern uint8_t Get_CAN_CH0_ID_402_Sig_ECU_DTCH1(void);
extern uint8_t Get_CAN_CH0_ID_37B_Sig_TCS_37B_Checksum(void);
extern uint8_t Get_CAN_CH0_ID_37B_Sig_TCS_37B_Livecounter(void);
extern uint8_t Get_CAN_CH0_ID_37B_Sig_TCS_Control(void);
extern uint16_t Get_CAN_CH0_ID_37B_Sig_TCS_Target_Torque(void);
extern uint8_t Get_CAN_CH0_ID_12B_Sig_Abs_warning_lamp(void);
extern uint8_t Get_CAN_CH0_ID_450_Sig_Dashboard_TCSFunSwitch(void);
extern uint8_t Get_CAN_CH0_ID_450_Sig_ABSOFF_Selection(void);
extern uint8_t Co_Can_ConvertSubID_CAN_CH0(uint32_t MsgID);
#endif
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
#include "Components.h" #include "Components.h"
static uint32_t PowerIgnOnTimeLine; uint32_t PowerIgnOnTimeLine;
uint32_t PowerIgnOffTimeLine; uint32_t PowerIgnOffTimeLine;
static uint32_t PowerSocTimeLine; static uint32_t PowerSocTimeLine;
......
#include "Data_Coolant.h"
#include "Components.h"
#if 0
#define FUEL_DATA_TIME 25u /*这里填写多长时间采集一个数据,单位ms*/
#define FUEL_DATA_NUM 20u /*燃油电阻采集数据总数 最大255*/
#define FUEL_CAL_START 5u /*数据排序后取中间部分计算平均:起始*/
#define FUEL_CAL_END 15u /*数据排序后取中间部分计算平均:结束*/
#define RETURN_DIFFERENCE 25u /*判断上升或下降的回差,精度0.1*/
#define FUEL_SEG_UP 0u
#define FUEL_SEG_DOWN 1u
uint16_t g_u16FuelData[FUEL_DATA_NUM];
uint8_t g_u8FuelDataCount = 0u;
uint16_t FuelR = 0u; /*滤波后的燃油电阻,精度0.1*/
static uint16_t FuelRBak = 0;
uint8_t g_u8DesFuelSetp = 0u;
uint8_t g_u8CurFuelSetp = 0u;
uint8_t g_u8FuelInitFlag = 0u;
uint8_t g_u8FuelStateInitFlag = 0u;
uint8_t g_u8FuelDir = FUEL_SEG_UP;
FuelSensorSts_t FuelSensorState = FuelSensorNormal;
uint16_t g_u16FuelSensorNormalTime = 0u;
uint16_t g_u16FuelSensorShortTime = 0u;
uint16_t g_u16FuelSensorOpenTime = 0u;
uint8_t g_u8FuelADCompleteFlg = 0u;
void Fuel_KL30_Init(void)
{
g_u8DesFuelSetp = 0u;
g_u8CurFuelSetp = 0u;
g_u8FuelInitFlag = 1u;
g_u8FuelStateInitFlag = 1u;
g_u8FuelDir = FUEL_SEG_UP;
FuelSensorState = FuelSensorNormal;
g_u16FuelSensorNormalTime = 0u;
g_u16FuelSensorShortTime = 0u;
g_u16FuelSensorOpenTime = 0u;
g_u8FuelADCompleteFlg = 0u;
}
void Fuel_KL15_Init(void)
{
g_u8DesFuelSetp = 0u;
g_u8CurFuelSetp = 0u;
g_u8FuelInitFlag = 1u;
g_u8FuelStateInitFlag = 1u;
g_u8FuelDir = FUEL_SEG_UP;
FuelSensorState = FuelSensorNormal;
g_u16FuelSensorNormalTime = 0u;
g_u16FuelSensorShortTime = 0u;
g_u16FuelSensorOpenTime = 0u;
g_u8FuelADCompleteFlg = 0u;
}
void Fuel_R_Cal(uint8_t deltaTime)
{
uint16_t FuelRes = 0;
uint8_t i, j;
uint32_t temp32;
static uint16_t timeCount = 0;
if(g_u8FuelStateInitFlag)
{
FuelR = ADC_Read_Signal(ADC_CH_FUEL1);
}
if (timeCount >= FUEL_DATA_TIME)
{
timeCount = 0;
if (g_u8FuelDataCount < FUEL_DATA_NUM)
{
/*获取燃油电阻*/
FuelRes = ADC_Read_Signal(ADC_CH_FUEL1);
/*四舍五入*/
if (FuelRes < 3100)
{
if (FuelRes % 10 >= 5)
{
FuelRes += 5;
}
}
else
{
FuelRes = 0xFFFF;
}
/*由小到大插入数据*/
for (i = 0; i < g_u8FuelDataCount; i++)
{
if (FuelRes < g_u16FuelData[i])
{
break;
}
}
for (j = g_u8FuelDataCount; j > i; j--)
{
g_u16FuelData[j] = g_u16FuelData[j - 1];
}
g_u16FuelData[i] = FuelRes;
g_u8FuelDataCount++;
}
else
{
/*一组数据采集完毕,取中间部分计算平均值*/
temp32 = 0;
for (i = FUEL_CAL_START; i < FUEL_CAL_END; i++)
{
temp32 += g_u16FuelData[i];
}
FuelR = temp32 / (FUEL_CAL_END - FUEL_CAL_START);
g_u8FuelDataCount = 0;
g_u8FuelADCompleteFlg = 1;
}
}
timeCount += deltaTime;
}
void Fuel_State_Check(uint8_t deltaTime)
{
if (FuelR < 30)
{ /*短路3*/
g_u16FuelSensorOpenTime = 0;
g_u16FuelSensorNormalTime = 0;
if ((g_u16FuelSensorShortTime > 3000) || ((g_u8FuelStateInitFlag) && (g_u16FuelSensorShortTime > 3000)))
{
FuelSensorState = FuelSensorShortCircuit;
g_u8DesFuelSetp = 0;
g_u8CurFuelSetp = 6;
g_u8FuelStateInitFlag = 0;
g_u8FuelInitFlag = 1;
g_u8FuelDir = FUEL_SEG_UP;
}
else
{
g_u16FuelSensorShortTime += deltaTime;
}
}
else if (FuelR > 3100)
{ /*开路 310*/
g_u16FuelSensorShortTime = 0;
g_u16FuelSensorNormalTime = 0;
if ((g_u16FuelSensorOpenTime > 3000) || ((g_u8FuelStateInitFlag) && (g_u16FuelSensorOpenTime > 3000)))
{
FuelSensorState = FuelSensorOpenCircuit;
g_u8DesFuelSetp = 0;
g_u8CurFuelSetp = 0;
g_u8FuelStateInitFlag = 0;
g_u8FuelInitFlag = 1;
g_u8FuelDir = FUEL_SEG_UP;
}
else
{
g_u16FuelSensorOpenTime += deltaTime;
}
}
else
{
g_u16FuelSensorShortTime = 0;
g_u16FuelSensorOpenTime = 0;
if (g_u16FuelSensorNormalTime > 3000)
{
FuelSensorState = FuelSensorNormal;
g_u8FuelStateInitFlag = 0;
}
else
{
g_u16FuelSensorNormalTime += deltaTime;
}
}
}
void Fuel_Gauges_Cal(uint8_t deltaTime)
{
static uint16_t time = 0;
if ((FuelSensorState == FuelSensorNormal) && (FuelR <= 3100) && (FuelR >= 30))
{
/*采集完第一组数据后,开始计算燃油格数*/
if (g_u8FuelADCompleteFlg)
{
if (g_u8FuelInitFlag)
{
FuelRBak = FuelR;
}
/*根据回差计算走动方向*/
if (g_u8FuelDir == FUEL_SEG_UP)
{
if (FuelR >= FuelRBak + RETURN_DIFFERENCE)
{
g_u8FuelDir = FUEL_SEG_DOWN;
FuelRBak = FuelR;
}
if (FuelR < FuelRBak)
{
FuelRBak = FuelR;
}
}
else
{
if (FuelRBak >= FuelR + RETURN_DIFFERENCE)
{
g_u8FuelDir = FUEL_SEG_UP;
FuelRBak = FuelR;
}
if (FuelR > FuelRBak)
{
FuelRBak = FuelR;
}
}
/*计算目标格数*/
if (g_u8FuelDir == FUEL_SEG_UP)
{
if (((g_u8DesFuelSetp == 5) || g_u8FuelInitFlag) && (FuelR < 30))
{
g_u8DesFuelSetp = 6;
}
else if (((g_u8DesFuelSetp == 4) || g_u8FuelInitFlag) && (FuelR < 160))
{
g_u8DesFuelSetp = 5;
}
else if (((g_u8DesFuelSetp == 3) || g_u8FuelInitFlag) && (FuelR < 300))
{
g_u8DesFuelSetp = 4;
}
else if (((g_u8DesFuelSetp == 2) || g_u8FuelInitFlag) && (FuelR < 500))
{
g_u8DesFuelSetp = 3;
}
else if (((g_u8DesFuelSetp == 1) || g_u8FuelInitFlag) && (FuelR < 790))
{
g_u8DesFuelSetp = 2;
}
else if (((g_u8DesFuelSetp == 0) || g_u8FuelInitFlag) && (FuelR <= 3100))
{
g_u8DesFuelSetp = 1;
}
}
else if (g_u8FuelDir == FUEL_SEG_DOWN)
{
if (((g_u8DesFuelSetp == 1) || g_u8FuelInitFlag) && (FuelR > 3100))
{
g_u8DesFuelSetp = 0;
}
else if (((g_u8DesFuelSetp == 2) || g_u8FuelInitFlag) && (FuelR >= 790))
{
g_u8DesFuelSetp = 1;
}
else if (((g_u8DesFuelSetp == 3) || g_u8FuelInitFlag) && (FuelR >= 500))
{
g_u8DesFuelSetp = 2;
}
else if (((g_u8DesFuelSetp == 4) || g_u8FuelInitFlag) && (FuelR >= 300))
{
g_u8DesFuelSetp = 3;
}
else if (((g_u8DesFuelSetp == 5) || g_u8FuelInitFlag) && (FuelR >= 160))
{
g_u8DesFuelSetp = 4;
}
else if (((g_u8DesFuelSetp == 6) || g_u8FuelInitFlag) && (FuelR >= 30))
{
g_u8DesFuelSetp = 5;
}
}
}
/*IGN ON 1秒/故障恢复后,开始走格 立即指向当前格 20220704*/
if (Common_GetIgnOnTime() >= 3000)
{
time += deltaTime;
if (g_u8FuelInitFlag)
{
g_u8FuelInitFlag = 0;
time = 0;
g_u8CurFuelSetp = g_u8DesFuelSetp;
}
if (time >= 15000)
{ /* 15S变化一格 */
time = 0;
if (g_u8CurFuelSetp < g_u8DesFuelSetp)
{
g_u8CurFuelSetp++;
}
else if (g_u8CurFuelSetp > g_u8DesFuelSetp)
{
g_u8CurFuelSetp--;
}
}
if (g_u8CurFuelSetp == g_u8DesFuelSetp)
{
time = 0;
}
}
}
}
void Fuel_Cal_Sevice(uint8_t deltaTime)
{
/*检测燃油电阻状态*/
Fuel_State_Check(deltaTime);
/*显示燃油格*/
Fuel_Gauges_Cal(deltaTime);
}
uint8_t Get_CurFuelSetp(void)
{
uint8_t u8CurFuelSetp = g_u8CurFuelSetp;
if(FuelSensorState == FuelSensorOpenCircuit)
{
if(FLASH_SYNC_1Hz)
{
u8CurFuelSetp = 6;
}
else
{
u8CurFuelSetp = 0;
}
}
else if(FuelSensorState == FuelSensorShortCircuit)
{
if(FLASH_SYNC_1Hz)
{
u8CurFuelSetp = 7;
}
else
{
u8CurFuelSetp = 0;
}
}
else if(u8CurFuelSetp == 1)
{
if(FLASH_SYNC_1Hz)
{
u8CurFuelSetp = 1;
}
else
{
u8CurFuelSetp = 0;
}
}
else
{
;
}
return u8CurFuelSetp;
}
FuelSensorSts_t Get_Fuel_Sensor_State(void)
{
uint8_t u8CurFuelSetp = 0;
if(FuelSensorState == FuelSensorOpenCircuit || g_u8CurFuelSetp == 1u)
{
if(FLASH_SYNC_1Hz)
{
u8CurFuelSetp = 2;
}
else
{
u8CurFuelSetp = 0;
}
}
else
{
u8CurFuelSetp = 1u;
}
return u8CurFuelSetp;
}
#endif
\ No newline at end of file
#ifndef DATA_COOLANT_H
#define DATA_COOLANT_H
#include "stdint.h"
typedef enum{
FuelSensorNormal = 0,
FuelSensorShortCircuit,
FuelSensorOpenCircuit,
}FuelSensorSts_t;
extern void Fuel_KL15_Init(void);
extern void Fuel_KL30_Init(void);
extern void Fuel_Cal_Sevice(uint8_t deltaTime);
extern uint8_t Get_CurFuelSetp(void);
extern FuelSensorSts_t Get_Fuel_Sensor_State(void);
void Fuel_R_Cal(uint8_t deltaTime);
#endif
#include "Data_ESpeed.h"
#include "Components.h"
/*** 发动机转速 ***/
uint16_t DataESpeedActual;
uint16_t DataESpeedDisp;
uint8_t DataESpeedValid;
DataESpeedSamplerStruct DataESpeedSampler;
DataESPeedDampingStruct DataESPeedDamping;
DataESpeedIdleStruct DataESpeedIdle;
#define DATA_APPR_DIR_INC 0x01
#define DATA_APPR_DIR_DEC 0x02
/******************************************************************************
函数名:Data_Engine_Speed_KL30_Wakeup_Init
功 能:发动机转速初始化函数
参 数:无
返回值:无
******************************************************************************
注 意:该函数KL30初始化/Wakeup初始化被调用一次
******************************************************************************/
void Data_Engine_Speed_KL30_Wakeup_Init (void)
{
DataESpeedIdle.Timer = 0;
DataESpeedActual = 0;
DataESpeedDisp = 0;
DataESpeedValid = 0;
DataESpeedSampler.Cnt = 0;
DataESPeedDamping.Speed = 0;
DataESPeedDamping.Delta = 0;
DataESPeedDamping.Dir = DATA_APPR_DIR_INC;
}
/******************************************************************************
函数名:Data_Engine_Speed_Processing_Service
功 能:发动机转速数据处理函数
参 数:无
返回值:无
******************************************************************************
注 意:该函数必须每10ms被调用一次
******************************************************************************/
void Data_Engine_Speed_Processing_Service ( void )
{
uint8_t i;
uint16_t ESpeed;
uint16_t Delta;
//第1步:获取实际转速值及转速有效性
if ( Common_Get_IG_Sts() == COMMON_POWER_ON )
{
//if((CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_CAN_0x101_Msg_Count) == CAN_SIG_LOST)||(Get_CAN_CH0_ID_101_Sig_ECU_Engine_Speed() > 0xFFFF))
if(1)
{
DataESpeedValid = 0;
DataESpeedActual = 0;
DataESpeedSampler.Cnt = 0;
}
else
{
if ( DataESpeedValid == 0 )
{
DataESpeedValid = 1;
ESpeed = 4;//Get_CAN_CH0_ID_101_Sig_ECU_Engine_Speed();
ESpeed /= 4;
if ( ESpeed > 11000 )
ESpeed = 11000;
DataESpeedActual = ESpeed;
}
else
{
DataESpeedSampler.Buffer[DataESpeedSampler.Cnt] = Get_CAN_CH0_ID_101_Sig_ECU_Engine_Speed();
i = DataESpeedSampler.Cnt;
while ( ( i > 0 ) && ( DataESpeedSampler.Buffer[i] < DataESpeedSampler.Buffer[i - 1] ) )
{
ESpeed = DataESpeedSampler.Buffer[i];
DataESpeedSampler.Buffer[i] = DataESpeedSampler.Buffer[i - 1];
DataESpeedSampler.Buffer[i - 1] = ESpeed;
i--;
}
DataESpeedSampler.Cnt++;
if ( DataESpeedSampler.Cnt >= 5 )
{
DataESpeedSampler.Cnt = 0;
ESpeed = DataESpeedSampler.Buffer[3];
ESpeed /= 4;
if ( ESpeed > 11000 )
ESpeed = 11000;
DataESpeedActual = ESpeed;
}
}
}
}
else
{
DataESpeedValid = 0;
DataESpeedActual = 0;
DataESpeedSampler.Cnt = 0;
}
//第2步:怠速模式
ESpeed = DataESpeedActual;
#if 0
if ( ( ESpeed >= 500 ) && ( ESpeed <= 1000 ) )
{
DataESpeedIdle.Timer++;
if ( ESpeed > DataESpeedIdle.ESpeedBackup )
Delta = ESpeed - DataESpeedIdle.ESpeedBackup;
else
Delta = DataESpeedIdle.ESpeedBackup - ESpeed;
if ( DataESpeedIdle.Mode == 0 )
{
if ( Delta < 150 )
{
if ( DataESpeedIdle.Timer >= 200 )
{
DataESpeedIdle.Mode = 1;
DataESpeedIdle.Timer = 0;
}
}
else
DataESpeedIdle.Timer = 0;
DataESpeedIdle.ESpeedBackup = ESpeed;
}
else
{
if ( Delta < 150 )
{
if ( DataESpeedIdle.Timer >= 200 ) //怠速模式下每10秒转速数据更新一次
{
DataESpeedIdle.Timer = 0;
DataESpeedIdle.ESpeedBackup = ESpeed;
}
else
ESpeed = DataESpeedIdle.ESpeedBackup;
}
else //转速变化大于等于300立即退出怠速模式
{
DataESpeedIdle.Mode = 0;
DataESpeedIdle.Timer = 0;
DataESpeedIdle.ESpeedBackup = ESpeed;
}
}
}
else
{
DataESpeedIdle.Mode = 0;
DataESpeedIdle.Timer = 0;
DataESpeedIdle.ESpeedBackup = ESpeed;
}
#endif
//第3步:转速的阻尼处理
if ( ESpeed > DataESPeedDamping.Speed ) //实际值比当前显示值大时
{
Delta = ESpeed - DataESPeedDamping.Speed;
if ( DataESPeedDamping.Dir == DATA_APPR_DIR_INC ) //显示值正在向实际值增加,则维持当前方向调节增加速度
{
if ( DataESPeedDamping.Delta < Delta ) //当前增量小于显示值与实际值的差值,则提升增加的速度
{
DataESPeedDamping.Delta += DATA_ESPEED_INC_STEP;
if ( DataESPeedDamping.Delta > Delta )
DataESPeedDamping.Delta = Delta;
}
else //当前增量大于等于显示值与实际值的差值,保持增量与当前差值同步,增加的速度即逐步减小
DataESPeedDamping.Delta = Delta;
Delta = DataESPeedDamping.Delta;
Delta /= DATA_ESPEED_DAMPING_FACTOR;
if ( Delta < DATA_ESPEED_APPR_SPEED_MIN )
Delta = DATA_ESPEED_APPR_SPEED_MIN;
DataESPeedDamping.Speed += Delta;
if ( DataESPeedDamping.Speed > ESpeed )
DataESPeedDamping.Speed = ESpeed;
}
else //显示值正在减小,则尽快减速至速度为最小时更换方向
{
if ( DataESPeedDamping.Delta > DATA_ESPEED_DEC_STEP )
DataESPeedDamping.Delta -= DATA_ESPEED_DEC_STEP;
else
DataESPeedDamping.Delta = 0;
Delta = DataESPeedDamping.Delta;
Delta /= DATA_ESPEED_DAMPING_FACTOR;
if ( Delta < DATA_ESPEED_APPR_SPEED_MIN ) //已减速至最小速度
DataESPeedDamping.Dir = DATA_APPR_DIR_INC; //更换方向
else
{
if ( DataESPeedDamping.Speed > Delta )
DataESPeedDamping.Speed -= Delta;
else
DataESPeedDamping.Speed = 0;
}
}
}
else if ( ESpeed < DataESPeedDamping.Speed ) //实际值比当前显示值小时
{
Delta = DataESPeedDamping.Speed - ESpeed;
if ( DataESPeedDamping.Dir == DATA_APPR_DIR_INC ) //显示值仍在增加,则尽快减速至速度为最小时更换方向
{
if ( DataESPeedDamping.Delta > DATA_ESPEED_DEC_STEP )
DataESPeedDamping.Delta -= DATA_ESPEED_DEC_STEP;
else
DataESPeedDamping.Delta = 0;
Delta = DataESPeedDamping.Delta;
Delta /= DATA_ESPEED_DAMPING_FACTOR;
if ( Delta < DATA_ESPEED_APPR_SPEED_MIN ) //已减速至最小速度
DataESPeedDamping.Dir = DATA_APPR_DIR_DEC; //更换方向
else
{
DataESPeedDamping.Speed += Delta;
if ( DataESPeedDamping.Speed > 11000 )
DataESPeedDamping.Speed = 11000;
}
}
else //显示值正在向实际值减小,则维持当前方向调节增加速度
{
if ( DataESPeedDamping.Delta < Delta ) //当前(负)增量小于显示值与实际值的差值,则提升减小的速度
{
DataESPeedDamping.Delta += DATA_ESPEED_INC_STEP;
if ( DataESPeedDamping.Delta > Delta )
DataESPeedDamping.Delta = Delta;
}
else //当前(负)增量大于等于显示值与实际值的差值,保持(负)增量与当前差值同步,减小的速度即逐步减小
DataESPeedDamping.Delta = Delta;
Delta = DataESPeedDamping.Delta;
Delta /= DATA_ESPEED_DAMPING_FACTOR;
if ( Delta < DATA_ESPEED_APPR_SPEED_MIN )
Delta = DATA_ESPEED_APPR_SPEED_MIN;
if ( DataESPeedDamping.Speed < ESpeed + Delta )
DataESPeedDamping.Speed = ESpeed;
else
DataESPeedDamping.Speed -= Delta;
}
}
else //实际值与当前显示值相等时
{
Delta = DataESPeedDamping.Delta;
Delta /= DATA_ESPEED_DAMPING_FACTOR;
if ( Delta > DATA_ESPEED_APPR_SPEED_MIN ) //当前的速度不是最小,说明数值正在增加/减小中,则继续原过程
{
if ( DataESPeedDamping.Delta > DATA_ESPEED_DEC_STEP ) //显示值越过了实际值,必然要先减速至最小速度,再改变方向返回实际值
DataESPeedDamping.Delta -= DATA_ESPEED_DEC_STEP;
else
DataESPeedDamping.Delta = 0;
Delta = DataESPeedDamping.Delta;
Delta /= DATA_ESPEED_DAMPING_FACTOR;
if ( DataESPeedDamping.Dir == DATA_APPR_DIR_INC ) //显示值当前是增加方向
{
if ( Delta < DATA_ESPEED_APPR_SPEED_MIN ) //已减速至最小速度
DataESPeedDamping.Dir = DATA_APPR_DIR_DEC; //更换方向
else
{
DataESPeedDamping.Speed += Delta;
if ( DataESPeedDamping.Speed > 11000 )
DataESPeedDamping.Speed = 11000;
}
}
else //显示值当前是减小方向
{
if ( Delta < DATA_ESPEED_APPR_SPEED_MIN ) //已减速至最小速度
DataESPeedDamping.Dir = DATA_APPR_DIR_INC; //更换方向
else
{
if ( DataESPeedDamping.Speed > Delta )
DataESPeedDamping.Speed -= Delta;
else
DataESPeedDamping.Speed = 0;
}
}
}
}
//第4步 增加回差
if (DataESpeedDisp <= 80)
{
DataESpeedDisp = DataESPeedDamping.Speed;
}
else
{
if ( DataESpeedDisp < DataESPeedDamping.Speed )
{
DataESpeedDisp = DataESPeedDamping.Speed;
}
else
{
Delta = DataESpeedDisp - DataESPeedDamping.Speed;
if ( Delta >= DATA_ESPEED_HYSTERESIS )
{
DataESpeedDisp = DataESPeedDamping.Speed;
}
}
}
}
uint8_t Get_EngineValid(void)
{
return DataESpeedValid;
}
uint16_t Get_ActualEngineSpeed(void)
{
return DataESpeedActual;
}
uint16_t Get_DispEngineSpeed(void)
{
return DataESpeedDisp;
}
#ifndef _Data_Espeed_H_
#define _Data_Espeed_H_
#include "common.h"
/******************************************************************************
发动机转速
******************************************************************************/
/*** 参数设置 ***/
#define DATA_ENGINE_RUNNING_THRESHOLD 400 //发动机运转阈值
#define DATA_ENGINE_STOP_THRESHOLD 300 //发动机停止阈值
#define DATA_ESPEED_DAMPING_FACTOR 4 //阻尼系数
#define DATA_ESPEED_INC_STEP 10 //速度增加时慢加速速度变化步长
#define DATA_ESPEED_DEC_STEP 20 //方向改变时急减速速度变化步长
#define DATA_ESPEED_APPR_SPEED_MIN 10 //最小逼近速度
#define DATA_ESPEED_HYSTERESIS 80 //回差
/*** 控制结构 ***/
typedef struct
{
uint16_t Buffer[5];
uint8_t Cnt;
} DataESpeedSamplerStruct; //转速采样结构
typedef struct
{
uint16_t Speed;
uint16_t Delta;
uint8_t Dir;
} DataESPeedDampingStruct; //转速阻尼结构
typedef struct
{
uint16_t ESpeedBackup;
uint16_t Timer;
uint8_t Mode;
} DataESpeedIdleStruct; //怠速处理结构
/******************************************************************************
函数名:Data_Engine_Speed_KL30_Wakeup_Init
功 能:发动机转速初始化函数
参 数:无
返回值:无
******************************************************************************
注 意:该函数KL30初始化/Wakeup初始化被调用一次
******************************************************************************/
void Data_Engine_Speed_KL30_Wakeup_Init (void);
/******************************************************************************
函数名:Data_Engine_Speed_Processing_Service
功 能:发动机转速数据处理函数
参 数:无
返回值:无
******************************************************************************
注 意:该函数必须每20ms被调用一次
******************************************************************************/
void Data_Engine_Speed_Processing_Service ( void );
uint8_t Get_EngineValid(void);
uint16_t Get_ActualEngineSpeed(void);
uint16_t Get_DispEngineSpeed(void);
#endif
#include "Data_VSpeed.h"
#include "Components.h"
static uint16_t DataVSpeedActual;
static uint16_t DataVSpeedDisp;
static uint16_t DataVSpeedHysteresis;
static uint8_t DataVSpeedValid;
// static uint16_t DataVSpeedDisp_Mile;
static DataVSpeedSamplerStruct DataVSpeedSampler;
static DataVSPeedDampingStruct DataVSPeedDamping;
#define DATA_APPR_DIR_INC 0x01
#define DATA_APPR_DIR_DEC 0x02
/******************************************************************************
Data_Vehicle_Speed_KL30_Wakeup_Init
功 能:车速数据KL30_Wakeup_Init
参 数:无
返回值:无
******************************************************************************
注 意:该函数KL30_Wakeup_Init被调用一次
******************************************************************************/
void Data_Vehicle_Speed_KL30_Wakeup_Init(void)
{
DataVSpeedActual = 0;
DataVSpeedDisp = 0;
DataVSpeedHysteresis = 0;
DataVSpeedValid = 1;
DataVSpeedSampler.Cnt = 0;
DataVSPeedDamping.Speed = 0;
DataVSPeedDamping.Delta = 0;
DataVSPeedDamping.Dir = DATA_APPR_DIR_INC;
DataVSpeedSampler.Timer1 = 0;
DataVSpeedSampler.Timer = 0;
}
/******************************************************************************
函数名:Data_Vehicle_Speed_Wakeup_Init
功 能:车速数据唤醒初始化
参 数:无
返回值:无
******************************************************************************
注 意:该函数唤醒初始化被调用一次
******************************************************************************/
void Data_Vehicle_Speed_Wakeup_Init(void)
{
DataVSpeedDisp = 0;
DataVSpeedHysteresis = 0;
DataVSPeedDamping.Speed = 0;
DataVSPeedDamping.Delta = 0;
DataVSPeedDamping.Dir = DATA_APPR_DIR_INC;
DataVSpeedSampler.Timer1 = 0;
DataVSpeedSampler.Timer = 0;
}
/******************************************************************************
函数名:Data_Vehicle_Speed_Processing_Service
功 能:车速数据处理函数
参 数:无
返回值:无
******************************************************************************
注 意:该函数必须每20ms被调用一次
******************************************************************************/
void Data_Vehicle_Speed_Processing_Service(void)
{
uint8_t i;
uint16_t Delta;
uint32_t VSpeed;
uint32_t VSpeedCal;
//uint8_t ESC_VehicleSpeedvalid;
uint32_t Vehicle_Speed;
//Vehicle_Speed = Get_CAN_CH0_ID_101_Sig_ECU_Vehicle_Speed( );
//ESC_VehicleSpeedvalid = Get_CAN_CH0_ID_330_Sig_ESC_Vehicle_speed_valid( );
// 第1步:获取实际车速值及车速有效性
if( Common_Get_IG_Sts( ) == COMMON_POWER_ON )
{
//if ((CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_CAN_0x101_Msg_Count) == CAN_SIG_LOST) || (Vehicle_Speed > 0XFF))
if(1)
{
/* 先判断掉线 */
//if (CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_CAN_0x101_Msg_Count) == CAN_SIG_LOST)
if(1)
{
DataVSpeedValid = 0;
DataVSpeedActual = 0;
DataVSpeedSampler.Backup = 0;
}
#if 0
else if ( ESC_VehicleSpeedvalid == 1 )//发送can无效标志位
{
if ( DataVSpeedSampler.Timer1 <= 10 ) /* 10帧无效 */
{
if ( DataVSpeedValid )//判断车速是否有效,有效采集10次,车速等于上次值
{
DataVSpeedSampler.Timer1++;
DataVSpeedActual = DataVSpeedSampler.Backup;
}
else//无效,不采集,车速=0
{
DataVSpeedSampler.Timer1 = 10;
DataVSpeedActual = 0;
DataVSpeedSampler.Backup = 0;
}
}
else//不采集就,车速=0
{
DataVSpeedValid = 0;
DataVSpeedActual = 0;
DataVSpeedSampler.Backup = 0;
}
}
#endif
else /* 收到无效值 */
{
if ( DataVSpeedSampler.Timer <= 100 ) /* 100帧无效值 */
{
if ( DataVSpeedValid )
{
DataVSpeedSampler.Timer++;
DataVSpeedActual = DataVSpeedSampler.Backup;
}
else
{
DataVSpeedSampler.Timer = 100;
DataVSpeedActual = 0;
DataVSpeedSampler.Backup = 0;
}
}
else // 接收到100帧无效值
{
DataVSpeedValid = 0;
DataVSpeedActual = 0;
DataVSpeedSampler.Backup = 0;
}
}
}
else //车速在线且有效
{
if ( DataVSpeedValid == 0 )
{
DataVSpeedValid = 1;
VSpeed = Vehicle_Speed;
// VSpeed *= 9;
// VSpeed >>= 4;
DataVSpeedActual = VSpeed * 10;
}
else
{
DataVSpeedSampler.Buffer [ DataVSpeedSampler.Cnt ] = Vehicle_Speed;
i = DataVSpeedSampler.Cnt;
while ( (i > 0) && (DataVSpeedSampler.Buffer [ i ] < DataVSpeedSampler.Buffer [ i - 1 ]) )
{
VSpeed = DataVSpeedSampler.Buffer [ i ];
DataVSpeedSampler.Buffer [ i ] = DataVSpeedSampler.Buffer [ i - 1 ];
DataVSpeedSampler.Buffer [ i - 1 ] = VSpeed;
i--;
}
DataVSpeedSampler.Cnt++;
if ( DataVSpeedSampler.Cnt >= 3 )
{
DataVSpeedSampler.Cnt = 0;
VSpeed = DataVSpeedSampler.Buffer [ 1 ];
//VSpeed *= 9;
//VSpeed >>= 4;
DataVSpeedActual = VSpeed * 10;
}
DataVSpeedSampler.Timer = 0;
DataVSpeedSampler.Timer1 = 0;
DataVSpeedSampler.Backup = DataVSpeedActual;
}
}
}
else
{
DataVSpeedValid = 0;
DataVSpeedActual = 0;
DataVSpeedSampler.Timer = 0;
DataVSpeedSampler.Timer1 = 0;
DataVSpeedSampler.Cnt = 0;
DataVSpeedSampler.Backup = 0;
}
// 第2步:车速的阻尼处理
VSpeed = DataVSpeedActual;
if ( VSpeed > DataVSPeedDamping.Speed ) // 实际值比当前显示值大时
{
Delta = ( uint16_t )VSpeed - DataVSPeedDamping.Speed;
if ( DataVSPeedDamping.Dir == DATA_APPR_DIR_INC ) // 显示值正在向实际值增加,则维持当前方向调节增加速度
{
if ( DataVSPeedDamping.Delta < Delta ) // 当前增量小于显示值与实际值的差值,则提升增加的速度
{
DataVSPeedDamping.Delta += DATA_VSPEED_INC_STEP;
if ( DataVSPeedDamping.Delta > Delta )
DataVSPeedDamping.Delta = Delta;
}
else // 当前增量大于等于显示值与实际值的差值,保持增量与当前差值同步,增加的速度即逐步减小
DataVSPeedDamping.Delta = Delta;
Delta = DataVSPeedDamping.Delta;
Delta /= DATA_VSPEED_DAMPING_FACTOR;
if ( Delta < DATA_VSPEED_APPR_SPEED_MIN )
Delta = DATA_VSPEED_APPR_SPEED_MIN;
DataVSPeedDamping.Speed += Delta;
if ( DataVSPeedDamping.Speed > VSpeed )
DataVSPeedDamping.Speed = ( uint16_t )VSpeed;
}
else // 显示值正在减小,则尽快减速至速度为最小时更换方向
{
if ( DataVSPeedDamping.Delta > DATA_VSPEED_DEC_STEP )
DataVSPeedDamping.Delta -= DATA_VSPEED_DEC_STEP;
else
DataVSPeedDamping.Delta = 0;
Delta = DataVSPeedDamping.Delta;
Delta /= DATA_VSPEED_DAMPING_FACTOR;
if ( Delta < DATA_VSPEED_APPR_SPEED_MIN ) // 已减速至最小速度
DataVSPeedDamping.Dir = DATA_APPR_DIR_INC; // 更换方向
else
{
if ( DataVSPeedDamping.Speed > Delta )
DataVSPeedDamping.Speed -= Delta;
else
DataVSPeedDamping.Speed = 0;
}
}
}
else if ( VSpeed < DataVSPeedDamping.Speed ) // 实际值比当前显示值小时
{
Delta = DataVSPeedDamping.Speed - ( uint16_t )VSpeed;
if ( DataVSPeedDamping.Dir == DATA_APPR_DIR_INC ) // 显示值仍在增加,则尽快减速至速度为最小时更换方向
{
if ( DataVSPeedDamping.Delta > DATA_VSPEED_DEC_STEP )
DataVSPeedDamping.Delta -= DATA_VSPEED_DEC_STEP;
else
DataVSPeedDamping.Delta = 0;
Delta = DataVSPeedDamping.Delta;
Delta /= DATA_VSPEED_DAMPING_FACTOR;
if ( Delta < DATA_VSPEED_APPR_SPEED_MIN ) // 已减速至最小速度
DataVSPeedDamping.Dir = DATA_APPR_DIR_DEC; // 更换方向
else
{
DataVSPeedDamping.Speed += Delta;
if ( DataVSPeedDamping.Speed > 1200 )
DataVSPeedDamping.Speed = 1200;
}
}
else // 显示值正在向实际值减小,则维持当前方向调节增加速度
{
if ( DataVSPeedDamping.Delta < Delta ) // 当前(负)增量小于显示值与实际值的差值,则提升减小的速度
{
DataVSPeedDamping.Delta += DATA_VSPEED_INC_STEP;
if ( DataVSPeedDamping.Delta > Delta )
DataVSPeedDamping.Delta = Delta;
}
else // 当前(负)增量大于等于显示值与实际值的差值,保持(负)增量与当前差值同步,减小的速度即逐步减小
DataVSPeedDamping.Delta = Delta;
Delta = DataVSPeedDamping.Delta;
Delta /= DATA_VSPEED_DAMPING_FACTOR;
if ( Delta < DATA_VSPEED_APPR_SPEED_MIN )
Delta = DATA_VSPEED_APPR_SPEED_MIN;
if ( DataVSPeedDamping.Speed < VSpeed + Delta )
DataVSPeedDamping.Speed = ( uint16_t )VSpeed;
else
DataVSPeedDamping.Speed -= Delta;
}
}
else // 实际值与当前显示值相等时
{
Delta = DataVSPeedDamping.Delta;
Delta /= DATA_VSPEED_DAMPING_FACTOR;
if ( Delta > DATA_VSPEED_APPR_SPEED_MIN ) // 当前的速度不是最小,说明数值正在增加/减小中,则继续原过程
{
if ( DataVSPeedDamping.Delta > DATA_VSPEED_DEC_STEP ) // 显示值越过了实际值,必然要先减速至最小速度,再改变方向返回实际值
DataVSPeedDamping.Delta -= DATA_VSPEED_DEC_STEP;
else
DataVSPeedDamping.Delta = 0;
Delta = DataVSPeedDamping.Delta;
Delta /= DATA_VSPEED_DAMPING_FACTOR;
if ( DataVSPeedDamping.Dir == DATA_APPR_DIR_INC ) // 显示值当前是增加方向
{
if ( Delta < DATA_VSPEED_APPR_SPEED_MIN ) // 已减速至最小速度
DataVSPeedDamping.Dir = DATA_APPR_DIR_DEC; // 更换方向
else
{
DataVSPeedDamping.Speed += Delta;
if ( DataVSPeedDamping.Speed > 1200 )
DataVSPeedDamping.Speed = 1200;
}
}
else // 显示值当前是减小方向
{
if ( Delta < DATA_VSPEED_APPR_SPEED_MIN ) // 已减速至最小速度
DataVSPeedDamping.Dir = DATA_APPR_DIR_INC; // 更换方向
else
{
if ( DataVSPeedDamping.Speed > Delta )
DataVSPeedDamping.Speed -= Delta;
else
DataVSPeedDamping.Speed = 0;
}
}
}
}
// 第3步:生成显示车速
if ( (DataVSPeedDamping.Speed >= DataVSpeedHysteresis) || (DataVSPeedDamping.Speed < DATA_VSPEED_HYSTERESIS) )
{
DataVSpeedHysteresis = DataVSPeedDamping.Speed;
}
else
{
if ( DataVSpeedHysteresis - DataVSPeedDamping.Speed >= DATA_VSPEED_HYSTERESIS )
{
DataVSpeedHysteresis = DataVSPeedDamping.Speed;
}
}
VSpeedCal = ( uint32_t )DataVSpeedHysteresis;
if ( DataVSpeedValid )
{
VSpeedCal *= 108;
VSpeedCal /= 100;
if((VSpeedCal % 10) >= 5)
{
VSpeedCal += 5; /* 四舍五入 */
}
DataVSpeedDisp = ( uint16_t )VSpeedCal;
}
else
{
DataVSpeedDisp = 0;
}
}
/*车速有效位:有效=1,无效=0*/
uint8_t Get_VechileSpeedValid(void)
{
return DataVSpeedValid;
}
/*真实的车速,精度10倍,*/
uint16_t Get_ActualVechileSpeed(void)
{
return DataVSpeedActual;
}
/*显示车速,精度10倍,取整,舍去小数点*/
uint16_t Get_DispVechileSpeed(void)
{
uint16_t Vspeed = 0;
if(Get_Dis_Unit() == 0) /* KM */
{
if ( DataVSpeedDisp >= 1200 )
{
DataVSpeedDisp = 1200;
}
Vspeed = DataVSpeedDisp;
}
else //if (Get_Dis_Unit() == 1) /* MILE */
{
Vspeed = Data_Km_To_Mile(DataVSpeedDisp);
if ( Vspeed >= 750 )
{
Vspeed = 750;
}
}
// else
// {
// ;
// }
return Vspeed;
}
#ifndef _Data_Vspeed_H_
#define _Data_Vspeed_H_
#include "common.h"
/*** 参数设置 ***/
#define DATA_VEHICLE_RUNNING_THRESHOLD 25 //汽车行进阈值
#define DATA_VEHICLE_STOP_THRESHOLD 20 //汽车停止阈值
#define DATA_VSPEED_DAMPING_FACTOR 3 //阻尼系数
#define DATA_VSPEED_INC_STEP 2 //速度增加时慢加速速度变化步长
#define DATA_VSPEED_DEC_STEP 6 //方向改变时急减速速度变化步长
#define DATA_VSPEED_APPR_SPEED_MIN 2 //最小逼近速度
#define DATA_VSPEED_HYSTERESIS 10 //回差
/*** 控制结构 ***/
typedef struct
{
uint16_t Timer;
uint16_t Timer1;
uint16_t Backup;
uint16_t Buffer[3];
uint8_t Cnt;
} DataVSpeedSamplerStruct; //车速采样结构
typedef struct
{
uint16_t Speed;
uint16_t Delta;
uint8_t Dir;
} DataVSPeedDampingStruct; //车速阻尼结构
/******************************************************************************
Data_Vehicle_Speed_KL30_Wakeup_Init
功 能:车速数据KL30_Wakeup_Init
参 数:无
返回值:无
******************************************************************************
注 意:该函数KL30_Wakeup_Init被调用一次
******************************************************************************/
void Data_Vehicle_Speed_KL30_Wakeup_Init(void);
/******************************************************************************
函数名:Data_Vehicle_Speed_Processing_Service
功 能:车速数据处理函数
参 数:无
返回值:无
******************************************************************************
注 意:该函数必须每20ms被调用一次
******************************************************************************/
void Data_Vehicle_Speed_Processing_Service(void);
uint8_t Get_VechileSpeedValid(void);
/*真实的车速,精度10倍,*/
uint16_t Get_ActualVechileSpeed(void);
/*显示车速,精度10倍,取整,舍去小数点*/
uint16_t Get_DispVechileSpeed(void);
uint16_t Get_DispVechileSpeed_Mile(void);
#endif
...@@ -12,97 +12,97 @@ void Gpio_Init(_GpioUser_Enum InitMode) ...@@ -12,97 +12,97 @@ void Gpio_Init(_GpioUser_Enum InitMode)
if ((InitMode == Gpio_KL30_Init) || (InitMode == Gpio_WakeUp_Init)) if ((InitMode == Gpio_KL30_Init) || (InitMode == Gpio_WakeUp_Init))
{ {
RTE_GPIO_Config(RTE_GPIO_PORT00_PIN00, GpioOut_High); //L_油表切电_POW--- RTE_GPIO_Config(RTE_GPIO_PORT00_PIN00, RTE_GPIO_DIR_IN); //L_油表切电_POW---
RTE_GPIO_Config(RTE_GPIO_PORT00_PIN01, RTE_GPIO_DIR_IN); //KL15 RTE_GPIO_Config(RTE_GPIO_PORT00_PIN01, RTE_GPIO_DIR_IN); //KL15
RTE_GPIO_Config(RTE_GPIO_PORT00_PIN02, RTE_GPIO_DIR_IN); //段码SPI10-SD-1 RTE_GPIO_Config(RTE_GPIO_PORT00_PIN02, RTE_GPIO_DIR_IN);
RTE_GPIO_Config(RTE_GPIO_PORT00_PIN03, RTE_GPIO_DIR_IN); //段码SPI10-CSB-1 RTE_GPIO_Config(RTE_GPIO_PORT00_PIN03, GpioOut_Low);
RTE_GPIO_Config(RTE_GPIO_PORT00_PIN04, RTE_GPIO_DIR_IN); //段码SPI10-SCL-1 RTE_GPIO_Config(RTE_GPIO_PORT00_PIN04, RTE_GPIO_DIR_IN);
RTE_GPIO_Config(RTE_GPIO_PORT00_PIN05, GpioOut_Low); //L_BiasBitSW 里程百位--- RTE_GPIO_Config(RTE_GPIO_PORT00_PIN05, GpioOut_Low); //L_BiasBitSW 里程百位---
RTE_GPIO_Config(RTE_GPIO_PORT00_PIN06, GpioOut_Low); //L_BiasBitSW 里程千位--- RTE_GPIO_Config(RTE_GPIO_PORT00_PIN06, GpioOut_Low); //L_BiasBitSW 里程千位---
RTE_GPIO_Config(RTE_GPIO_PORT01_PIN00, RTE_GPIO_DIR_IN); //表盘背光-PWM RTE_GPIO_Config(RTE_GPIO_PORT01_PIN00, RTE_GPIO_DIR_OUT); //表盘背光-PWM
RTE_GPIO_Config(RTE_GPIO_PORT01_PIN01, RTE_GPIO_DIR_IN); //RXD-ESP-IN-MCU RTE_GPIO_Config(RTE_GPIO_PORT01_PIN01, GpioOut_Low); //RXD-ESP-IN-MCU
RTE_GPIO_Config(RTE_GPIO_PORT01_PIN02, GpioOut_High); //TXD-ESP-IN-MCU RTE_GPIO_Config(RTE_GPIO_PORT01_PIN02, GpioOut_Low); //TXD-ESP-IN-MCU
RTE_GPIO_Config(RTE_GPIO_PORT01_PIN03, GpioOut_Low); //空 RTE_GPIO_Config(RTE_GPIO_PORT01_PIN03, RTE_GPIO_DIR_IN);
RTE_GPIO_Config(RTE_GPIO_PORT01_PIN04, RTE_GPIO_DIR_IN); //SCL-IIC--- RTE_GPIO_Config(RTE_GPIO_PORT01_PIN04, RTE_GPIO_DIR_IN); //SCL-IIC---
RTE_GPIO_Config(RTE_GPIO_PORT01_PIN05, RTE_GPIO_DIR_IN); //SDA-IIC--- RTE_GPIO_Config(RTE_GPIO_PORT01_PIN05, GpioOut_High); //SDA-IIC---
RTE_GPIO_Config(RTE_GPIO_PORT01_PIN06, RTE_GPIO_DIR_IN); //转速信号--- RTE_GPIO_Config(RTE_GPIO_PORT01_PIN06, RTE_GPIO_DIR_IN);
RTE_GPIO_Config(RTE_GPIO_PORT01_PIN07, RTE_GPIO_DIR_IN); //车速信号-IOC-IN-MCU RTE_GPIO_Config(RTE_GPIO_PORT01_PIN07, RTE_GPIO_DIR_IN);
RTE_GPIO_Config(RTE_GPIO_PORT02_PIN00, RTE_GPIO_DIR_IN); //AVDD RTE_GPIO_Config(RTE_GPIO_PORT02_PIN00, RTE_GPIO_DIR_IN); //AVDD
RTE_GPIO_Config(RTE_GPIO_PORT02_PIN01, RTE_GPIO_DIR_IN); //GND RTE_GPIO_Config(RTE_GPIO_PORT02_PIN01, RTE_GPIO_DIR_IN); //GND
RTE_GPIO_Config(RTE_GPIO_PORT02_PIN02, RTE_GPIO_DIR_IN); //KL30-AD RTE_GPIO_Config(RTE_GPIO_PORT02_PIN02, RTE_GPIO_DIR_IN); //KL30-AD
RTE_GPIO_Config(RTE_GPIO_PORT02_PIN03, RTE_GPIO_DIR_IN); //KL15-AD RTE_GPIO_Config(RTE_GPIO_PORT02_PIN03, RTE_GPIO_DIR_IN); //KL15-AD
RTE_GPIO_Config(RTE_GPIO_PORT02_PIN04, RTE_GPIO_DIR_IN); //TCS信号输入-N-IN-MCU RTE_GPIO_Config(RTE_GPIO_PORT02_PIN04, RTE_GPIO_DIR_IN);
RTE_GPIO_Config(RTE_GPIO_PORT02_PIN05, RTE_GPIO_DIR_IN); //燃油信号输入-AD RTE_GPIO_Config(RTE_GPIO_PORT02_PIN05, RTE_GPIO_DIR_IN); //燃油信号输入-AD
RTE_GPIO_Config(RTE_GPIO_PORT02_PIN06, RTE_GPIO_DIR_IN); //水温信号输入-AD RTE_GPIO_Config(RTE_GPIO_PORT02_PIN06, RTE_GPIO_DIR_IN); //水温信号输入-AD
RTE_GPIO_Config(RTE_GPIO_PORT02_PIN07, RTE_GPIO_DIR_IN); //BiasBitSW-燃油-AD--- RTE_GPIO_Config(RTE_GPIO_PORT02_PIN07, RTE_GPIO_DIR_IN); //BiasBitSW-燃油-AD---
RTE_GPIO_Config(RTE_GPIO_PORT03_PIN00, RTE_GPIO_DIR_IN); //电喷信号输入-N-IN-MCU RTE_GPIO_Config(RTE_GPIO_PORT03_PIN00, GpioOut_Low);
RTE_GPIO_Config(RTE_GPIO_PORT03_PIN01, GpioOut_Low); //SDB_LED_DRIVER RTE_GPIO_Config(RTE_GPIO_PORT03_PIN01, RTE_GPIO_DIR_IN); //SDB_LED_DRIVER
RTE_GPIO_Config(RTE_GPIO_PORT04_PIN00, GpioOut_Low); //SEDIO-编程 RTE_GPIO_Config(RTE_GPIO_PORT04_PIN00, GpioOut_Low); //SEDIO-编程
RTE_GPIO_Config(RTE_GPIO_PORT04_PIN01, RTE_GPIO_DIR_IN); //智能锁信号输入-N-IN-MCU RTE_GPIO_Config(RTE_GPIO_PORT04_PIN01, RTE_GPIO_DIR_IN);
RTE_GPIO_Config(RTE_GPIO_PORT04_PIN02, RTE_GPIO_DIR_IN); //MODE按键信号输入-N-IN-MCU RTE_GPIO_Config(RTE_GPIO_PORT04_PIN02, RTE_GPIO_DIR_IN);
RTE_GPIO_Config(RTE_GPIO_PORT04_PIN03, RTE_GPIO_DIR_IN); //SET按键信号输入-N-IN-MCU RTE_GPIO_Config(RTE_GPIO_PORT04_PIN03, GpioOut_Low);
RTE_GPIO_Config(RTE_GPIO_PORT05_PIN00, GpioOut_High); //切电控制-MCU-OUT-2 RTE_GPIO_Config(RTE_GPIO_PORT05_PIN00, RTE_GPIO_DIR_IN); //切电控制-MCU-OUT-2
RTE_GPIO_Config(RTE_GPIO_PORT05_PIN01, GpioOut_High); //切电控制-MCU-OUT-1 RTE_GPIO_Config(RTE_GPIO_PORT05_PIN01, GpioOut_Low); //切电控制-MCU-OUT-1
RTE_GPIO_Config(RTE_GPIO_PORT05_PIN02, RTE_GPIO_DIR_IN); //位置灯信号输入_P_IN_MCU RTE_GPIO_Config(RTE_GPIO_PORT05_PIN02, GpioOut_High);
RTE_GPIO_Config(RTE_GPIO_PORT05_PIN03, RTE_GPIO_DIR_IN); //右转向信号输入_P_IN_MCU RTE_GPIO_Config(RTE_GPIO_PORT05_PIN03, RTE_GPIO_DIR_IN);
RTE_GPIO_Config(RTE_GPIO_PORT05_PIN04, RTE_GPIO_DIR_IN); //左转向信号输入_P_IN_MCU RTE_GPIO_Config(RTE_GPIO_PORT05_PIN04, GpioOut_High);
RTE_GPIO_Config(RTE_GPIO_PORT05_PIN05, RTE_GPIO_DIR_IN); //远光信号输入_P_IN_MCU RTE_GPIO_Config(RTE_GPIO_PORT05_PIN05, RTE_GPIO_DIR_IN);
RTE_GPIO_Config(RTE_GPIO_PORT06_PIN00, GpioOut_Low); //存储SCL RTE_GPIO_Config(RTE_GPIO_PORT06_PIN00, GpioOut_Low); //存储SCL
RTE_GPIO_Config(RTE_GPIO_PORT06_PIN01, GpioOut_Low); //存储SDA RTE_GPIO_Config(RTE_GPIO_PORT06_PIN01, GpioOut_Low); //存储SDA
RTE_GPIO_Config(RTE_GPIO_PORT06_PIN02, GpioOut_Low); //SCL_MCU RTE_GPIO_Config(RTE_GPIO_PORT06_PIN02, GpioOut_Low); //SCL_MCU
RTE_GPIO_Config(RTE_GPIO_PORT06_PIN03, GpioOut_Low); //SDA_MCU RTE_GPIO_Config(RTE_GPIO_PORT06_PIN03, GpioOut_Low); //SDA_MCU
RTE_GPIO_Config(RTE_GPIO_PORT07_PIN00, RTE_GPIO_DIR_IN); //段码SPI20-SCL-2 RTE_GPIO_Config(RTE_GPIO_PORT07_PIN00, GpioOut_Low);
RTE_GPIO_Config(RTE_GPIO_PORT07_PIN01, RTE_GPIO_DIR_IN); //段码SPI20-CSB-2 RTE_GPIO_Config(RTE_GPIO_PORT07_PIN01, GpioOut_Low);
RTE_GPIO_Config(RTE_GPIO_PORT07_PIN02, RTE_GPIO_DIR_IN); //段码SPI20-SD-2 RTE_GPIO_Config(RTE_GPIO_PORT07_PIN02, GpioOut_Low);
RTE_GPIO_Config(RTE_GPIO_PORT07_PIN03, GpioOut_Low); //L_BiasBitSW 里程万位--- RTE_GPIO_Config(RTE_GPIO_PORT07_PIN03, GpioOut_Low); //L_BiasBitSW 里程万位---
RTE_GPIO_Config(RTE_GPIO_PORT07_PIN04, GpioOut_Low); //L_BiasBitSW 里程千位--- RTE_GPIO_Config(RTE_GPIO_PORT07_PIN04, GpioOut_Low); //L_BiasBitSW 里程千位---
RTE_GPIO_Config(RTE_GPIO_PORT07_PIN05, RTE_GPIO_DIR_IN); //ABS故障信号输入-N-IN-MCU RTE_GPIO_Config(RTE_GPIO_PORT07_PIN05, GpioOut_Low); //ABS故障信号输入-N-IN-MCU
RTE_GPIO_Config(RTE_GPIO_PORT07_PIN06, GpioOut_Low); //空 RTE_GPIO_Config(RTE_GPIO_PORT07_PIN06, RTE_GPIO_DIR_IN);
RTE_GPIO_Config(RTE_GPIO_PORT07_PIN07, GpioOut_Low); //空 RTE_GPIO_Config(RTE_GPIO_PORT07_PIN07, GpioOut_Low);
RTE_GPIO_Config(RTE_GPIO_PORT12_PIN00, GpioOut_High); //L_BiasBitSW_POW--- RTE_GPIO_Config(RTE_GPIO_PORT12_PIN00, GpioOut_High); //L_BiasBitSW_POW---
RTE_GPIO_Config(RTE_GPIO_PORT12_PIN01, GpioOut_Low); //X1 RTE_GPIO_Config(RTE_GPIO_PORT12_PIN01, GpioOut_Low); //X1
RTE_GPIO_Config(RTE_GPIO_PORT12_PIN02, GpioOut_Low); //X2 RTE_GPIO_Config(RTE_GPIO_PORT12_PIN02, RTE_GPIO_DIR_IN); //X2
RTE_GPIO_Config(RTE_GPIO_PORT12_PIN03, GpioOut_Low); //XT1 RTE_GPIO_Config(RTE_GPIO_PORT12_PIN03, GpioOut_Low); //XT1
RTE_GPIO_Config(RTE_GPIO_PORT12_PIN04, GpioOut_Low); //XT2 RTE_GPIO_Config(RTE_GPIO_PORT12_PIN04, RTE_GPIO_DIR_IN); //XT2
RTE_GPIO_Config(RTE_GPIO_PORT13_PIN00, GpioOut_Low); //空 RTE_GPIO_Config(RTE_GPIO_PORT13_PIN00, RTE_GPIO_DIR_IN);
RTE_GPIO_Config(RTE_GPIO_PORT13_PIN06, RTE_GPIO_DIR_IN); //空挡信号输入-N-IN-MCU RTE_GPIO_Config(RTE_GPIO_PORT13_PIN06, GpioOut_Low);
RTE_GPIO_Config(RTE_GPIO_PORT13_PIN07, GpioOut_Low); //SWCLK-编程 RTE_GPIO_Config(RTE_GPIO_PORT13_PIN07, GpioOut_Low); //SWCLK-编程
RTE_GPIO_Config(RTE_GPIO_PORT14_PIN00, GpioOut_High); //L_BD433Ctrl_OUT RTE_GPIO_Config(RTE_GPIO_PORT14_PIN00, GpioOut_Low); //L_BD433Ctrl_OUT
RTE_GPIO_Config(RTE_GPIO_PORT14_PIN01, GpioOut_High); //L_BiasBitSW_燃油_OUT--- RTE_GPIO_Config(RTE_GPIO_PORT14_PIN01, RTE_GPIO_DIR_IN); //L_BiasBitSW_燃油_OUT---
RTE_GPIO_Config(RTE_GPIO_PORT14_PIN06, RTE_GPIO_DIR_IN); //A_Version--- RTE_GPIO_Config(RTE_GPIO_PORT14_PIN06, GpioOut_Low);
RTE_GPIO_Config(RTE_GPIO_PORT14_PIN07, GpioOut_Low); //空 RTE_GPIO_Config(RTE_GPIO_PORT14_PIN07, GpioOut_Low);
} }
else else
{ {
RTE_GPIO_Config(RTE_GPIO_PORT00_PIN00, GpioOut_Low); RTE_GPIO_Config(RTE_GPIO_PORT00_PIN00, RTE_GPIO_DIR_IN);
RTE_GPIO_Config(RTE_GPIO_PORT00_PIN01, RTE_GPIO_DIR_IN); RTE_GPIO_Config(RTE_GPIO_PORT00_PIN01, RTE_GPIO_DIR_IN);
RTE_GPIO_Config(RTE_GPIO_PORT00_PIN02, GpioOut_Low); RTE_GPIO_Config(RTE_GPIO_PORT00_PIN02, RTE_GPIO_DIR_IN);
RTE_GPIO_Config(RTE_GPIO_PORT00_PIN03, GpioOut_Low); RTE_GPIO_Config(RTE_GPIO_PORT00_PIN03, GpioOut_Low);
RTE_GPIO_Config(RTE_GPIO_PORT00_PIN04, GpioOut_Low); RTE_GPIO_Config(RTE_GPIO_PORT00_PIN04, RTE_GPIO_DIR_IN);
RTE_GPIO_Config(RTE_GPIO_PORT00_PIN05, GpioOut_Low); RTE_GPIO_Config(RTE_GPIO_PORT00_PIN05, GpioOut_Low);
RTE_GPIO_Config(RTE_GPIO_PORT00_PIN06, GpioOut_Low); RTE_GPIO_Config(RTE_GPIO_PORT00_PIN06, GpioOut_Low);
RTE_GPIO_Config(RTE_GPIO_PORT01_PIN00, GpioOut_Low); RTE_GPIO_Config(RTE_GPIO_PORT01_PIN00, RTE_GPIO_DIR_OUT);
RTE_GPIO_Config(RTE_GPIO_PORT01_PIN01, RTE_GPIO_DIR_IN); RTE_GPIO_Config(RTE_GPIO_PORT01_PIN01, GpioOut_Low);
RTE_GPIO_Config(RTE_GPIO_PORT01_PIN02, GpioOut_Low); RTE_GPIO_Config(RTE_GPIO_PORT01_PIN02, GpioOut_Low);
RTE_GPIO_Config(RTE_GPIO_PORT01_PIN03, GpioOut_Low); RTE_GPIO_Config(RTE_GPIO_PORT01_PIN03, RTE_GPIO_DIR_IN);
RTE_GPIO_Config(RTE_GPIO_PORT01_PIN04, RTE_GPIO_DIR_IN); RTE_GPIO_Config(RTE_GPIO_PORT01_PIN04, RTE_GPIO_DIR_IN);
RTE_GPIO_Config(RTE_GPIO_PORT01_PIN05, RTE_GPIO_DIR_IN); RTE_GPIO_Config(RTE_GPIO_PORT01_PIN05, GpioOut_Low);
RTE_GPIO_Config(RTE_GPIO_PORT01_PIN06, RTE_GPIO_DIR_IN); RTE_GPIO_Config(RTE_GPIO_PORT01_PIN06, RTE_GPIO_DIR_IN);
RTE_GPIO_Config(RTE_GPIO_PORT01_PIN07, RTE_GPIO_DIR_IN); RTE_GPIO_Config(RTE_GPIO_PORT01_PIN07, RTE_GPIO_DIR_IN);
RTE_GPIO_Config(RTE_GPIO_PORT02_PIN00, GpioOut_High); RTE_GPIO_Config(RTE_GPIO_PORT02_PIN00, RTE_GPIO_DIR_IN);
RTE_GPIO_Config(RTE_GPIO_PORT02_PIN01, GpioOut_Low); RTE_GPIO_Config(RTE_GPIO_PORT02_PIN01, RTE_GPIO_DIR_IN);
RTE_GPIO_Config(RTE_GPIO_PORT02_PIN02, RTE_GPIO_DIR_IN); RTE_GPIO_Config(RTE_GPIO_PORT02_PIN02, RTE_GPIO_DIR_IN);
RTE_GPIO_Config(RTE_GPIO_PORT02_PIN03, RTE_GPIO_DIR_IN); RTE_GPIO_Config(RTE_GPIO_PORT02_PIN03, RTE_GPIO_DIR_IN);
RTE_GPIO_Config(RTE_GPIO_PORT02_PIN04, RTE_GPIO_DIR_IN); RTE_GPIO_Config(RTE_GPIO_PORT02_PIN04, RTE_GPIO_DIR_IN);
...@@ -110,19 +110,19 @@ void Gpio_Init(_GpioUser_Enum InitMode) ...@@ -110,19 +110,19 @@ void Gpio_Init(_GpioUser_Enum InitMode)
RTE_GPIO_Config(RTE_GPIO_PORT02_PIN06, RTE_GPIO_DIR_IN); RTE_GPIO_Config(RTE_GPIO_PORT02_PIN06, RTE_GPIO_DIR_IN);
RTE_GPIO_Config(RTE_GPIO_PORT02_PIN07, RTE_GPIO_DIR_IN); RTE_GPIO_Config(RTE_GPIO_PORT02_PIN07, RTE_GPIO_DIR_IN);
RTE_GPIO_Config(RTE_GPIO_PORT03_PIN00, RTE_GPIO_DIR_IN); RTE_GPIO_Config(RTE_GPIO_PORT03_PIN00, GpioOut_Low);
RTE_GPIO_Config(RTE_GPIO_PORT03_PIN01, GpioOut_Low); RTE_GPIO_Config(RTE_GPIO_PORT03_PIN01, RTE_GPIO_DIR_IN);
RTE_GPIO_Config(RTE_GPIO_PORT04_PIN00, GpioOut_Low); RTE_GPIO_Config(RTE_GPIO_PORT04_PIN00, GpioOut_Low);
RTE_GPIO_Config(RTE_GPIO_PORT04_PIN01, RTE_GPIO_DIR_IN); RTE_GPIO_Config(RTE_GPIO_PORT04_PIN01, RTE_GPIO_DIR_IN);
RTE_GPIO_Config(RTE_GPIO_PORT04_PIN02, RTE_GPIO_DIR_IN); RTE_GPIO_Config(RTE_GPIO_PORT04_PIN02, RTE_GPIO_DIR_IN);
RTE_GPIO_Config(RTE_GPIO_PORT04_PIN03, RTE_GPIO_DIR_IN); RTE_GPIO_Config(RTE_GPIO_PORT04_PIN03, GpioOut_Low);
RTE_GPIO_Config(RTE_GPIO_PORT05_PIN00, GpioOut_Low); RTE_GPIO_Config(RTE_GPIO_PORT05_PIN00, RTE_GPIO_DIR_IN);
RTE_GPIO_Config(RTE_GPIO_PORT05_PIN01, GpioOut_Low); RTE_GPIO_Config(RTE_GPIO_PORT05_PIN01, GpioOut_High);
RTE_GPIO_Config(RTE_GPIO_PORT05_PIN02, RTE_GPIO_DIR_IN); RTE_GPIO_Config(RTE_GPIO_PORT05_PIN02, GpioOut_High);
RTE_GPIO_Config(RTE_GPIO_PORT05_PIN03, RTE_GPIO_DIR_IN); RTE_GPIO_Config(RTE_GPIO_PORT05_PIN03, RTE_GPIO_DIR_IN);
RTE_GPIO_Config(RTE_GPIO_PORT05_PIN04, RTE_GPIO_DIR_IN); RTE_GPIO_Config(RTE_GPIO_PORT05_PIN04, GpioOut_Low);
RTE_GPIO_Config(RTE_GPIO_PORT05_PIN05, RTE_GPIO_DIR_IN); RTE_GPIO_Config(RTE_GPIO_PORT05_PIN05, RTE_GPIO_DIR_IN);
RTE_GPIO_Config(RTE_GPIO_PORT06_PIN00, GpioOut_High); RTE_GPIO_Config(RTE_GPIO_PORT06_PIN00, GpioOut_High);
...@@ -135,9 +135,9 @@ void Gpio_Init(_GpioUser_Enum InitMode) ...@@ -135,9 +135,9 @@ void Gpio_Init(_GpioUser_Enum InitMode)
RTE_GPIO_Config(RTE_GPIO_PORT07_PIN02, GpioOut_Low); RTE_GPIO_Config(RTE_GPIO_PORT07_PIN02, GpioOut_Low);
RTE_GPIO_Config(RTE_GPIO_PORT07_PIN03, GpioOut_Low); RTE_GPIO_Config(RTE_GPIO_PORT07_PIN03, GpioOut_Low);
RTE_GPIO_Config(RTE_GPIO_PORT07_PIN04, GpioOut_Low); RTE_GPIO_Config(RTE_GPIO_PORT07_PIN04, GpioOut_Low);
RTE_GPIO_Config(RTE_GPIO_PORT07_PIN05, RTE_GPIO_DIR_IN); RTE_GPIO_Config(RTE_GPIO_PORT07_PIN05, GpioOut_Low);
RTE_GPIO_Config(RTE_GPIO_PORT07_PIN06, GpioOut_Low); RTE_GPIO_Config(RTE_GPIO_PORT07_PIN06, GpioOut_Low);
RTE_GPIO_Config(RTE_GPIO_PORT07_PIN07, GpioOut_Low); RTE_GPIO_Config(RTE_GPIO_PORT07_PIN07, RTE_GPIO_DIR_IN);
RTE_GPIO_Config(RTE_GPIO_PORT12_PIN00, GpioOut_Low); RTE_GPIO_Config(RTE_GPIO_PORT12_PIN00, GpioOut_Low);
RTE_GPIO_Config(RTE_GPIO_PORT12_PIN01, GpioOut_Low); RTE_GPIO_Config(RTE_GPIO_PORT12_PIN01, GpioOut_Low);
...@@ -145,13 +145,13 @@ void Gpio_Init(_GpioUser_Enum InitMode) ...@@ -145,13 +145,13 @@ void Gpio_Init(_GpioUser_Enum InitMode)
RTE_GPIO_Config(RTE_GPIO_PORT12_PIN03, GpioOut_Low); RTE_GPIO_Config(RTE_GPIO_PORT12_PIN03, GpioOut_Low);
RTE_GPIO_Config(RTE_GPIO_PORT12_PIN04, GpioOut_Low); RTE_GPIO_Config(RTE_GPIO_PORT12_PIN04, GpioOut_Low);
RTE_GPIO_Config(RTE_GPIO_PORT13_PIN00, GpioOut_Low); RTE_GPIO_Config(RTE_GPIO_PORT13_PIN00, RTE_GPIO_DIR_IN);
RTE_GPIO_Config(RTE_GPIO_PORT13_PIN06, RTE_GPIO_DIR_IN); RTE_GPIO_Config(RTE_GPIO_PORT13_PIN06, GpioOut_Low);
RTE_GPIO_Config(RTE_GPIO_PORT13_PIN07, GpioOut_Low); RTE_GPIO_Config(RTE_GPIO_PORT13_PIN07, GpioOut_Low);
RTE_GPIO_Config(RTE_GPIO_PORT14_PIN00, GpioOut_Low); RTE_GPIO_Config(RTE_GPIO_PORT14_PIN00, GpioOut_Low);
RTE_GPIO_Config(RTE_GPIO_PORT14_PIN01, RTE_GPIO_DIR_IN); RTE_GPIO_Config(RTE_GPIO_PORT14_PIN01, RTE_GPIO_DIR_IN);
RTE_GPIO_Config(RTE_GPIO_PORT14_PIN06, RTE_GPIO_DIR_IN); RTE_GPIO_Config(RTE_GPIO_PORT14_PIN06, GpioOut_Low);
RTE_GPIO_Config(RTE_GPIO_PORT14_PIN07, GpioOut_Low); RTE_GPIO_Config(RTE_GPIO_PORT14_PIN07, GpioOut_Low);
} }
} }
...@@ -4,75 +4,75 @@ ...@@ -4,75 +4,75 @@
#define GpioOut_High RTE_GPIO_DIR_OUT | RTE_GPIO_LEVEL_HIGH #define GpioOut_High RTE_GPIO_DIR_OUT | RTE_GPIO_LEVEL_HIGH
#define GpioOut_Low RTE_GPIO_DIR_OUT | RTE_GPIO_LEVEL_LOW #define GpioOut_Low RTE_GPIO_DIR_OUT | RTE_GPIO_LEVEL_LOW
/* GPIO映射 */ /* GPIO映射 */
#define L_Fuel_POW RTE_GPIO_PORT00_PIN00 #define ABS_Faulty_lights RTE_GPIO_PORT00_PIN00
#define KL15_AD_IN RTE_GPIO_PORT00_PIN01 #define KL15_AD_IN RTE_GPIO_PORT00_PIN01
#define SD_1 RTE_GPIO_PORT00_PIN02 #define MCU_SPI_MOSI RTE_GPIO_PORT00_PIN02
#define CSB_1 RTE_GPIO_PORT00_PIN03 #define MCU_SPI_MISO RTE_GPIO_PORT00_PIN03
#define SCL_1 RTE_GPIO_PORT00_PIN04 #define MCU_SPI_CLK RTE_GPIO_PORT00_PIN04
#define L_BiasBitSW_100 RTE_GPIO_PORT00_PIN05 #define HighBeam_P_In RTE_GPIO_PORT00_PIN05
#define L_BiasBitSW_10 RTE_GPIO_PORT00_PIN06 #define VSPEED_TEN_OUT RTE_GPIO_PORT00_PIN06
#define Blacklight_PWM RTE_GPIO_PORT01_PIN00 #define Blacklight_PWM RTE_GPIO_PORT01_PIN00 //ljs
#define RXD_ESP_IN_MCU RTE_GPIO_PORT01_PIN01 #define LIN_RXD_ESP RTE_GPIO_PORT01_PIN01
#define TXD_ESP_IN_MCU RTE_GPIO_PORT01_PIN02 #define LIN_TXD_ESP RTE_GPIO_PORT01_PIN02
#define NONE_3 RTE_GPIO_PORT01_PIN03 #define Gears_N_MCU RTE_GPIO_PORT01_PIN03
#define SCL_IIC RTE_GPIO_PORT01_PIN04 #define Low_oil_pressure_MCU RTE_GPIO_PORT01_PIN04
#define SDA_IIC RTE_GPIO_PORT01_PIN05 #define x1530_EN_MCU RTE_GPIO_PORT01_PIN05
#define ESpeed_IOC RTE_GPIO_PORT01_PIN06 #define ESPEED_TEN_IN RTE_GPIO_PORT01_PIN06
#define VSpeed_IOC RTE_GPIO_PORT01_PIN07 #define VSPEED_TEN_IN RTE_GPIO_PORT01_PIN07
#define AVDD RTE_GPIO_PORT02_PIN00 #define AVDD RTE_GPIO_PORT02_PIN00
#define GND RTE_GPIO_PORT02_PIN01 #define GND RTE_GPIO_PORT02_PIN01
#define KL30_AD_MCU_IN RTE_GPIO_PORT02_PIN02 #define KL30_AD_MCU_IN RTE_GPIO_PORT02_PIN02 //ljs
#define KL15_AD_MCU_IN RTE_GPIO_PORT02_PIN03 #define KL15_AD_MCU_IN RTE_GPIO_PORT02_PIN03 //ljs
#define TCS RTE_GPIO_PORT02_PIN04 #define A_NTC_IN RTE_GPIO_PORT02_PIN04
#define Fuel_AD_IN_MCU RTE_GPIO_PORT02_PIN05 #define A_FuelSender_BitSNSR1_IN RTE_GPIO_PORT02_PIN05
#define Water_Temperature RTE_GPIO_PORT02_PIN06 #define A_WaterTemp_IN RTE_GPIO_PORT02_PIN06
#define BiasBitSW_Fuel RTE_GPIO_PORT02_PIN07 #define A_FULESTANDARDBitSW1_IN RTE_GPIO_PORT02_PIN07
#define Diagnosis RTE_GPIO_PORT03_PIN00 #define MAINTENANCE_LAMP_OUT RTE_GPIO_PORT03_PIN00
#define SDB_LED_DRIVER RTE_GPIO_PORT03_PIN01 #define LeftTurn_MUC_OUT RTE_GPIO_PORT03_PIN01
#define SWDIO RTE_GPIO_PORT04_PIN00 #define SWDIO_JTMS RTE_GPIO_PORT04_PIN00
#define Smart_Lock RTE_GPIO_PORT04_PIN01 #define Start_stop_MCU RTE_GPIO_PORT04_PIN01
#define MODE_IN_MCU RTE_GPIO_PORT04_PIN02 #define Select_button_MCU RTE_GPIO_PORT04_PIN02
#define SET_IN_MCU RTE_GPIO_PORT04_PIN03 #define VCC1V2_AMT_EN RTE_GPIO_PORT04_PIN03 //ljs
#define MCU_OUT_2CH_20k RTE_GPIO_PORT05_PIN00 #define CAN_MCU_RXD RTE_GPIO_PORT05_PIN00
#define MCU_OUT_1CH_200 RTE_GPIO_PORT05_PIN01 #define CAN_MCU_TXD RTE_GPIO_PORT05_PIN01
#define Position RTE_GPIO_PORT05_PIN02 #define CAN_STB_MCU RTE_GPIO_PORT05_PIN02
#define Right_Turn RTE_GPIO_PORT05_PIN03 #define HighBeam_MCU RTE_GPIO_PORT05_PIN03
#define Left_Turn RTE_GPIO_PORT05_PIN04 #define L_FuelSender_OUT RTE_GPIO_PORT05_PIN04
#define High_Beam RTE_GPIO_PORT05_PIN05 #define SWITCH_MCU RTE_GPIO_PORT05_PIN05
#define SCL RTE_GPIO_PORT06_PIN00 #define IIC_SCL_24G16 RTE_GPIO_PORT06_PIN00
#define SDA RTE_GPIO_PORT06_PIN01 #define IIC_SDA_24G16 RTE_GPIO_PORT06_PIN01
#define SCL_MCU RTE_GPIO_PORT06_PIN02 #define IIC_SCL_27030 RTE_GPIO_PORT06_PIN02
#define SDA_MCU RTE_GPIO_PORT06_PIN03 #define I243_SDA_27030 RTE_GPIO_PORT06_PIN03
#define SCL_2 RTE_GPIO_PORT07_PIN00 #define SCL_2 RTE_GPIO_PORT07_PIN00
#define CSB_2 RTE_GPIO_PORT07_PIN01 #define CSB_2 RTE_GPIO_PORT07_PIN01
#define SD_2 RTE_GPIO_PORT07_PIN02 #define SD_2 RTE_GPIO_PORT07_PIN02
#define L_BiasBitSW_10000 RTE_GPIO_PORT07_PIN03 #define MCU_RSTB_LCD RTE_GPIO_PORT07_PIN03 //ljs
#define L_BiasBitSW_1000 RTE_GPIO_PORT07_PIN04 #define HighBeam_MUC_OUT RTE_GPIO_PORT07_PIN04
#define ABS RTE_GPIO_PORT07_PIN05 #define STBYB_LCD_MCU RTE_GPIO_PORT07_PIN05 //ljs
#define RXD_2 RTE_GPIO_PORT07_PIN06 #define RXD_2 RTE_GPIO_PORT07_PIN06 //ljs
#define TXD_2 RTE_GPIO_PORT07_PIN07 #define TXD_2 RTE_GPIO_PORT07_PIN07 //ljs
#define L_BiasBitSW_POW RTE_GPIO_PORT12_PIN00 #define L_BiasBitSW_POW RTE_GPIO_PORT12_PIN00
#define X_1 RTE_GPIO_PORT12_PIN01 #define MCU_XI RTE_GPIO_PORT12_PIN01
#define X_2_EXCLK RTE_GPIO_PORT12_PIN02 #define MCU_XO RTE_GPIO_PORT12_PIN02
#define XT_1 RTE_GPIO_PORT12_PIN03 #define X32768_IN RTE_GPIO_PORT12_PIN03
#define XT_2 RTE_GPIO_PORT12_PIN04 #define X32768_OUT RTE_GPIO_PORT12_PIN04
#define NONE_2 RTE_GPIO_PORT13_PIN00 #define MCU_SPI_CS RTE_GPIO_PORT13_PIN00
#define Neutral RTE_GPIO_PORT13_PIN06 #define RESEVER5_OUT_LOW RTE_GPIO_PORT13_PIN06
#define SWCLK RTE_GPIO_PORT13_PIN07 #define SWCLK RTE_GPIO_PORT13_PIN07
#define L_BD433Ctrl_OUT RTE_GPIO_PORT14_PIN00 #define VCC_33_EN_MCU RTE_GPIO_PORT14_PIN00 //ljs
#define L_BiasBitSW_Fuel_OUT RTE_GPIO_PORT14_PIN01 #define RightTurn_MUC_OUT RTE_GPIO_PORT14_PIN01
#define A_Version RTE_GPIO_PORT14_PIN06 #define A_Version RTE_GPIO_PORT14_PIN06
#define NONE_1 RTE_GPIO_PORT14_PIN07 #define Engine_Failure_MCU RTE_GPIO_PORT14_PIN07
typedef enum typedef enum
{ {
......
#include "AMT630H.h"
#include <stdint.h>
#include "UartProtocol.h"
#include "Components.h"
#include "PicBin.h"
#include "GpioUser.h"
//#include "AMT630H_Datas.h"
#define AMT630H_ERR_TIME 10000U
#define AMT630H_RELEASE_MODE 1U
unsigned int AMT630H_InitTime = 0;
uint8_t g_sysFlag_Lcdcheck = 0;
/* Initialization */
LCD_TFT_SOUND_PARA_ST LcdSoundParamterData;
SOFTWARE_VERSION_ST amt630Version;
uint8_t Amt630hInitFinishFlag = 0;
uint32_t Amt630hInitTimerCnts = 0;
uint32_t Amt630hSequentialTimerCnts = 0;
uint32_t Amt630hFlashCheckTimerCnts = 0;
uint32_t Amt630hServiceTimerCnts = 0;
/* SOC Error */
uint16_t AMT630H_REQ_Time[ALIVE_COUNTER_TOTAL] = { 0 };
uint8_t AMT630H_Err = 0U;
uint8_t AMT630H_AliveCounter[ALIVE_COUNTER_TOTAL] = { 0 };
uint16_t AMT630H_CrcErrTime = 0;
uint32_t AMT630H_CrcErrCounter = 0;
uint8_t AMT630H_CrcErrMaxCounter = 0;
/* Flash Check */
#define FLASH_CHECK_TIME_NUM 20000
s_AMT630H_FlashCheck_t AMT630H_FlashCheck;
/* Delay Time */
unsigned long Delay_Time = 0;
unsigned long Delay_Time_Set = 0;
/* Refresh Time */
unsigned long AMT630H_RefreshTime = 0;
static uint8_t AMT630H_Animation_Start = 0;
static uint8_t AMT630H_Animation_Finish = 0;
static uint16_t AMT630H_Animation_DispPic = 0;
static uint16_t AMT630H_Animation_RefreshTime = 0;
static uint16_t AMT630H_Animation_RefreshTime_default = 0;
static const uint16_t BootAnimationList[AMT630H_ANIMATION_PIC_NUM] = {
0,
};
void AMT630H_Animation_PlayProc(uint16_t PicIndex)
{
unsigned char *pBuf;
uint32_t tmpLen = 0;
SetPageGuid(GRAPHICS_PAGE_0, 1, 0, 0);
SetPageBackground(GRAPHICS_PAGE_0, PicIndex);
PackedTransfer_Page();
// PackedTransfer_GetSwVer();
}
/* Timer */
void AMT630H_Timer(unsigned char Tms)
{
unsigned char i = 0U;
for(i = 0; i < ALIVE_COUNTER_TOTAL; i++)
{
if(AMT630H_REQ_Time[i] < AMT630H_ERR_TIME)
{
AMT630H_REQ_Time[i] += Tms;
}
}
if(AMT630H_RefreshTime < AMT630H_REFRESH_TIME)
{
AMT630H_RefreshTime += Tms;
}
if(Delay_Time < Delay_Time_Set)
{
Delay_Time += Tms;
}
if(AMT630H_InitTime < 5000)
{
AMT630H_InitTime += Tms;
}
if(AMT630H_Animation_Finish == 0)
{
if(AMT630H_Animation_RefreshTime < AMT630H_ANIMATION_TIME)
{
AMT630H_Animation_RefreshTime += Tms;
}
}
else
{
AMT630H_Animation_RefreshTime = 0;
}
}
void Delay_Time_Ctrl(unsigned long Tms)
{
Delay_Time = 0;
Delay_Time_Set = Tms;
while(Delay_Time < Delay_Time_Set)
{
RTE_WDT_Clear();
}
Delay_Time = 0;
Delay_Time_Set = 0;
}
uint8_t UartRevBuff[0x1000] = { 0 };
uint32_t UartRevCnts = 0;
void Amt630hUartRecvData(uint16_t u16UARTData)
{
UartRevBuff[UartRevCnts++] = (u16UARTData & 0xff);
if (UartRevCnts >= 0x1000)
{
UartRevCnts = 0;
}
}
void AMT630H_RstCtrl(void)
{
RTE_GPIO_Set_Level(VCC_33_EN_MCU, 0);//630
RTE_GPIO_Set_Level(VCC1V2_AMT_EN, 0);//630
RTE_GPIO_Set_Level(STBYB_LCD_MCU, 0);//lcd
RTE_GPIO_Set_Level(MCU_RSTB_LCD, 0);//lcd
Delay_Time_Ctrl(10);
RTE_GPIO_Set_Level(VCC1V2_AMT_EN, 1);
Delay_Time_Ctrl(15);
RTE_GPIO_Set_Level(VCC_33_EN_MCU, 1);
Delay_Time_Ctrl(30);
RTE_GPIO_Set_Level(x1530_EN_MCU, 1);//1530
Delay_Time_Ctrl(10);
RTE_GPIO_Set_Level(MCU_RSTB_LCD, 1);
Delay_Time_Ctrl(15);
RTE_GPIO_Set_Level(STBYB_LCD_MCU, 1);
}
void Amt630hInit(void)
{
uint8_t i = 0;
AMT630H_RstCtrl();
AMT630H_RefreshTime = AMT630H_REFRESH_TIME;
// Error State Init
AMT630H_Err = 0U;
for(i = 0; i < ALIVE_COUNTER_TOTAL; i++)
{
AMT630H_REQ_Time[i] = 0U;
AMT630H_AliveCounter[i] = 0;
}
AMT630H_CrcErrTime = 0;
AMT630H_CrcErrCounter = 0;
// Param Config
LcdSoundParamterData.LcdWidth = 1024;
LcdSoundParamterData.LcdHeight = 600;
LcdSoundParamterData.LcdBpp = 32;
LcdSoundParamterData.LcdVideoInputValid = 0;
LcdSoundParamterData.Ark7116ResetPin = 0;
LcdSoundParamterData.LcdInterfaceType = LCD_INTERFACE_LVDS;
LcdSoundParamterData.LcdWiringMode = LCD_WIRING_MODE_BGR;
LcdSoundParamterData.LcdWiringBitOrder = LCD_WIRING_BIT_ORDER_MSB;
LcdSoundParamterData.LcdDotClkReverse = 0; /* NuoMa 50pin TFT */
LcdSoundParamterData.LvdsPanelFormat = LVDS_PANEL_FORMAT_NS;
LcdSoundParamterData.LvdsPanelData = LVDS_PANEL_DATA_8BIT;
LcdSoundParamterData.LcdTimingVBP = 12;
LcdSoundParamterData.LcdTimingVFP = 20;
LcdSoundParamterData.LcdTimingVSW = 4;
LcdSoundParamterData.LcdTimingHBP = 160;
LcdSoundParamterData.LcdTimingHFP = 160;
LcdSoundParamterData.LcdTimingHSW = 24;
LcdSoundParamterData.LcdClkFreq = 51200000;
LcdSoundParamterData.SoundChannelNum = 0;
LcdSoundParamterData.SoundFreq = AUDIO_FREQ_48K;
SetLcdSoundParameter(&LcdSoundParamterData);
SetSwVerBuf((uint8_t*)&amt630Version);
User_PicIndexDataInit();
ResetInitedState();
AnalysisUartData();
AMT630H_InitTime = 0;
AMT630H_Animation_Start = 0;
AMT630H_Animation_Finish = 0;
AMT630H_Animation_DispPic = 0;
AMT630H_Animation_RefreshTime = 0;
AMT630H_Animation_RefreshTime_default = AMT630H_ANIMATION_REFRESHTIME_DEF(0);
Amt630hInitFinishFlag = 0;
AMT630H_FlashCheck.Flag = 0;
AMT630H_FlashCheck.InquireTime = 0;
AMT630H_FlashCheck.CheckStateTime = 0;
AMT630H_FlashCheck.Result = 0;
}
void AMT630H_Sleep(void)
{
RTE_GPIO_Set_Level(STBYB_LCD_MCU, 0);
Delay_Time_Ctrl(30);
RTE_GPIO_Set_Level(VCC_33_EN_MCU, 0);
RTE_GPIO_Set_Level(VCC1V2_AMT_EN, 0);
RTE_GPIO_Set_Level(MCU_RSTB_LCD, 0);
}
static void AMT630H_AliveCounterMonitor(void)
{
uint8_t i = 0;
if(AMT630H_CrcErrCounter != GetCrcErrCnts())
{
AMT630H_CrcErrCounter = GetCrcErrCnts();
AMT630H_CrcErrTime++;
if(AMT630H_CrcErrTime >= 120)
{
AMT630H_Err = 1;
}
for(i = 0; i < ALIVE_COUNTER_TOTAL; i++)
{
AMT630H_REQ_Time[i] = 0;
}
}
for(i = 0; i < ALIVE_COUNTER_TOTAL; i++)
{
if(AMT630H_AliveCounter[i] != GetAliveCounter(i))
{
AMT630H_AliveCounter[i] = GetAliveCounter(i);
AMT630H_REQ_Time[i] = 0;
if(AMT630H_CrcErrMaxCounter < AMT630H_CrcErrTime)
{
AMT630H_CrcErrMaxCounter = (unsigned char)AMT630H_CrcErrTime;
}
AMT630H_CrcErrTime = 0;
}
if(AMT630H_REQ_Time[i] >= AMT630H_ERR_TIME)
{
AMT630H_Err = 1;
}
}
}
void AMT630H_Main(void)
{
unsigned char i;
AnalysisUartData();
if(GetLcdInitSt() != 1)
{
for(i = 0; i < ALIVE_COUNTER_TOTAL; i++)
{
AMT630H_REQ_Time[i] = 0U;
}
return;
}
AMT630H_AliveCounterMonitor();
if(AMT630H_Err == 1U)
{
AMT630H_Err = 0;
Amt630hInit();
AMT630H_Animation_Finish = 1;
return;
}
// if(g_sysFlag_Lcdcheck == 1)
// {
// if(AMT630H_FlashCheck.Flag == 0)
// {
// AMT630H_FlashCheck.Flag = 1;
// AMT630H_FlashCheck.InquireTime = 0;
// AMT630H_FlashCheck.CheckStateTime = 0;
// PackedTransfer_CheckFlash();
// AMT630H_FlashCheck.Result = 0xFF;
// }
// if(AMT630H_FlashCheck.Flag == 1)
// {
// if(AMT630H_FlashCheck.InquireTime >= 100)
// {
// AMT630H_FlashCheck.InquireTime = 0;
// AMT630H_FlashCheck.Result = PackedTransfer_CheckFlashGetResult();
// if(AMT630H_FlashCheck.Result != 0xFF)
// {
// if(AMT630H_FlashCheck.Result == 1)
// {
// PackedTransfer_CheckFlashForceDisplay(DISPLAY_CHECK_PASS, 3000);
// AMT630H_FlashCheck.Flag = 2;
// }
// else if (AMT630H_FlashCheck.CheckStateTime >= FLASH_CHECK_TIME_NUM)
// {
// PackedTransfer_CheckFlashForceDisplay(DISPLAY_CHECK_FAIL, 60000);
// AMT630H_FlashCheck.Flag = 2;
// }
// }
// }
// else
// {
// PackedTransfer_CheckFlashForceDisplay(DISPLAY_CHECKING, 60000);
// }
// }
// }
if (SYS_OPR_STAT_IGN_ON)
{
if(1)
{
AMT630H_Animation_RefreshTime = 0;
if(AMT630H_RefreshTime >= AMT630H_REFRESH_TIME)
{
AMT630H_RefreshTime = 0;
AMT630H_GUI_DisplayProc();
//SetPageGuid(GRAPHICS_PAGE_0, 1, 0, 0);
//SetPageBackground( GRAPHICS_PAGE_0, Pic_0001_0_0 );
//SetPagePic(GRAPHICS_PAGE_0, Pic_0002_751_440);
//SetPagePic(GRAPHICS_PAGE_0, Pic_0003_681_441);
//SetPagePic(GRAPHICS_PAGE_0, Pic_0005_521_444);
//SetPagePic(GRAPHICS_PAGE_0, Pic_0010_90_443);
//SetPagePic(GRAPHICS_PAGE_0, Pic_0012_0_95);
//PackedTransfer_Page();
}
}
else
{
// AMT630H_RefreshTime = 0;
// if(AMT630H_Animation_Start == 0)
// {
// AMT630H_Animation_Start = 1;
// AMT630H_Animation_RefreshTime_default = AMT630H_ANIMATION_REFRESHTIME_DEF(0);
// }
// if(AMT630H_Animation_RefreshTime >= AMT630H_Animation_RefreshTime_default)
// {
// AMT630H_Animation_RefreshTime = 0;
// AMT630H_Animation_PlayProc(BootAnimationList[AMT630H_Animation_DispPic]);
// AMT630H_Animation_DispPic++;
// if(AMT630H_Animation_DispPic >= AMT630H_ANIMATION_PIC_NUM)
// {
// AMT630H_Animation_Finish = 1;
// }
// }
}
}
else
{
AMT630H_Animation_RefreshTime = 0;
if(AMT630H_RefreshTime >= AMT630H_REFRESH_TIME)
{
AMT630H_RefreshTime = 0;
//AMT630H_GUI_DisplayProc();
}
}
}
unsigned char AMT630H_isInitFinish(void)
{
if((AMT630H_InitTime >= 600) || (GetLcdInitSt() == 1))
{
return 1;
}
else
{
return 0;
}
}
\ No newline at end of file
#ifndef AMT_630H_H
#define AMT_630H_H
#include <stdint.h>
typedef enum
{
EM_FLASH_CHECK_RESULT_NO_ACT = 0,
EM_FLASH_CHECK_RESULT_CHECKING,
EM_FLASH_CHECK_RESULT_SUCCESS,
EM_FLASH_CHECK_RESULT_FAIL,
}EM_FLASH_CHECK_RESULT_T;
typedef struct
{
uint8_t Flag;
uint32_t InquireTime;
uint32_t CheckStateTime;
uint8_t Result;
}s_AMT630H_FlashCheck_t;
#define AMT630H_REFRESH_TIME 50U
#define AMT630H_ANIMATION_TIME 3000U //ms
#define AMT630H_ANIMATION_PIC_NUM 146U
#define AMT630H_ANIMATION_REFRESHTIME_DEF(x) ((AMT630H_ANIMATION_TIME > x) ? \
(((AMT630H_ANIMATION_TIME - x) / AMT630H_ANIMATION_PIC_NUM) - 5) : \
(((AMT630H_ANIMATION_TIME) / AMT630H_ANIMATION_PIC_NUM) - 5))
void AMT630H_Timer(unsigned char Tms);
void Delay_Time_Ctrl(unsigned long Tms);
void Amt630hUartRecvData(uint16_t u16UARTData);
void AMT630H_Animation_PlayProc(uint16_t PicIndex);
void AMT630H_RstCtrl(void);
void Amt630hInit(void);
void AMT630H_Sleep(void);
static void AMT630H_AliveCounterMonitor(void);
void AMT630H_Main(void);
unsigned char AMT630H_isInitFinish(void);
extern uint32_t Amt630hInitTimerCnts ;
#endif
\ No newline at end of file
#include "Components.h"
void AMT630H_GUI_Background()
{
if (SYS_OPR_STAT_IGN_ON)
{
SetPagePic(GRAPHICS_PAGE_0, Pic_0058_360_325);
SetPagePic(GRAPHICS_PAGE_0, Pic_0012_22_397);//Pic_0001_0_0白色主题背景
SetPagePic(GRAPHICS_PAGE_0, Pic_0101_728_486);
SetPagePic(GRAPHICS_PAGE_0, Pic_0128_429_152);
SetPagePic(GRAPHICS_PAGE_0, Pic_0176_903_396);
SetPagePic(GRAPHICS_PAGE_0, Pic_0156_197_485);
SetPagePic(GRAPHICS_PAGE_0, Pic_0211_564_211);
SetPagePic(GRAPHICS_PAGE_0, Pic_0244_360_194);
SetPagePic(GRAPHICS_PAGE_0, Pic_0303_189_486);
SetPagePic(GRAPHICS_PAGE_0, Pic_0385_250_553);
//SetPagePicFree(GRAPHICS_PAGE_0, Pic_0694_54_327, 200,327);//中间显示道路装饰线
//SetPagePic(GRAPHICS_PAGE_0, Pic_0012_0_95);//中间显示光晕
//
//SetPagePic(GRAPHICS_PAGE_0, Pic_0047_264_95);//右侧表盘
//SetPagePic(GRAPHICS_PAGE_0, Pic_0048_610_229);//右侧指针
//SetPagePic(GRAPHICS_PAGE_0, Pic_0052_44_95);//左侧表盘
//SetPagePic(GRAPHICS_PAGE_0, Pic_0053_49_229);//左侧指针
//SetPagePic(GRAPHICS_PAGE_0, Pic_0037_309_380);//功率线条
//SetPagePic(GRAPHICS_PAGE_0, Pic_0045_249_412);//power
//SetPagePic(GRAPHICS_PAGE_0, Pic_0044_454_405);//功率8km
//SetPagePic(GRAPHICS_PAGE_0, Pic_0043_313_405);//功率-3km
}
else
{
//SetPagePic(GRAPHICS_PAGE_0, Pic_0001_0_0);
//SetPagePic(GRAPHICS_PAGE_0, Pic_0013_0_57);
//SetPagePic(GRAPHICS_PAGE_0, Pic_0012_0_95);
//SetPagePic(GRAPHICS_PAGE_0, Pic_0047_264_95);
//SetPagePic(GRAPHICS_PAGE_0, Pic_0048_610_229);
//SetPagePic(GRAPHICS_PAGE_0, Pic_0052_44_95);
//SetPagePic(GRAPHICS_PAGE_0, Pic_0053_49_229);
//SetPagePic(GRAPHICS_PAGE_0, Pic_0057_376_336);
}
}
void AMT630H_GUI_DisplayProc(void)
{
SetPageGuid(GRAPHICS_PAGE_0, 1, 1, 1);
AMT630H_GUI_Background();
PackedTransfer_Page();
}
\ No newline at end of file
#ifndef A69FAEFD_36D2_473A_A858_C02318EB402B
#define A69FAEFD_36D2_473A_A858_C02318EB402B
extern void AMT630H_GUI_DisplayProc(void);
extern void AMT630H_GUI_Background(void);
#endif /* A69FAEFD_36D2_473A_A858_C02318EB402B */
#include "UartProtocol.h"
#include "PicBin.h"
#include <stdint.h>
#define NULL 0
extern uint8_t UartRevBuff[0x1000];
extern uint32_t UartRevCnts;
uint8_t *GetUartRecvData(uint32_t *UartRecvBufLen, uint32_t *UartRecvPos)
{
*UartRecvBufLen = 0x1000;
*UartRecvPos = UartRevCnts;
return UartRevBuff;
}
void UartSendData(uint8_t *data, uint32_t len)
{
UART_Ch2_Send_Multiple_Byte(data, len);
}
void DisplayNum(uint8_t page, DISPLAY_NUM_ST *pNumData, int32_t NumVal)
{
uint8_t j = 0;
uint8_t i = 0;
int32_t TmpNum;
uint16_t tmpIndex = 0;
uint8_t PointFrontRearBlank = 2;
uint16_t DotPosition = 0;
uint8_t DotInterval = 0;
uint16_t NumberList[20];
DotInterval = 3;
DotPosition = pNumData->DecimalNum;
DotPosition <<= 8;
TmpNum = NumVal;
if (TmpNum < 0) {
TmpNum = -TmpNum;
}
do {
NumberList[tmpIndex ++] = pNumData->NumList[(TmpNum % 10)];
i++;
TmpNum /= 10;
if (i == pNumData->DecimalNum) {
if (pNumData->NumList[NUM_POINT] != NULL) {
NumberList[tmpIndex ++] = pNumData->NumList[NUM_POINT];
}
}
} while (TmpNum != 0u);
if (pNumData->DecimalNum != 0u) {
while ((i - 1u) < pNumData->DecimalNum) {
NumberList[tmpIndex ++] = pNumData->NumList[0];
i++;
if (i == pNumData->DecimalNum) {
if (pNumData->NumList[NUM_POINT] != NULL) {
NumberList[tmpIndex ++] = pNumData->NumList[NUM_POINT];
}
}
}
}
if (pNumData->MinDigits != 0u) {
if ((i - 1) < pNumData->MinDigits) {
for (j = i; j < pNumData->MinDigits; j++) {
NumberList[tmpIndex ++] = pNumData->NumList[0];
i++;
}
}
}
if (NumVal < 0) {
if (pNumData->NumList[NUM_LINE] != NULL) {
NumberList[tmpIndex ++] = pNumData->NumList[NUM_LINE];
}
}
SetPagePicGroup(page, pNumData->NumInterval, pNumData->x, pNumData->y, NumberList, GROUP_ALIGN_CENTER | (tmpIndex & 0x3f), DotPosition | DotInterval, TFT_ROT_0);
}
/***************** Read 630 ************************/
#define READ_MCU_DATA_MAX 0x800
enum {
READ630_IDLE,
READ630_WAITING_RESP,
READ630_RECV_RESP_DATA,
READ630_RECV_OFFSET_LEN,
READ630_RECV_BACKUP_DATA_RESP,
READ630_RECV_BACKUP_DATA_CRC,
};
static uint8_t Read630State = READ630_IDLE;
static uint32_t ReqDataBufAddr = 0;
static uint32_t ReqDataLen = 0;
static uint32_t RespDataOffset = 0;
static uint32_t RespDataLen = 0;
static uint32_t RespDataCrc = 0;
static uint32_t WriteBackupDataCrc = 0;
uint32_t ProcMcuOrBackupData(READ_ARK630_CMD type, uint32_t offset, uint32_t len, uint8_t uotbuffer[])
{
uint32_t ret32 = 0;
if (type == REQ_DATA) {
if (len <= READ_MCU_DATA_MAX) {
ReqDataBufAddr = (uint32_t)uotbuffer;
ReqDataLen = len;
memset((uint8_t *)ReqDataBufAddr, 0, ReqDataLen);
PackedTransfer_GetMcuData(offset, (uint16_t)len);
Read630State = READ630_WAITING_RESP;
RespDataOffset = 0;
RespDataLen = 0;
} else {
ret32 = 1;
}
} else if (type == WRITE_BACKUP_DATA) {
if (len <= READ_MCU_DATA_MAX) {
PackedTransfer_WriteBackupData(offset, uotbuffer, (uint16_t)len);
Read630State = READ630_WAITING_RESP;
RespDataOffset = 0;
RespDataLen = 0;
} else {
ret32 = 1;
}
} else if (type == GET_BACKUP_DATA_CRC) {
PackedTransfer_GetBackupDataCrc(offset, len);
Read630State = READ630_WAITING_RESP;
RespDataOffset = 0;
RespDataLen = 0;
} else if (type == GET_STATUS) {
if (Read630State == READ630_WAITING_RESP) {
ret32 = 2;
} else if (Read630State == READ630_RECV_RESP_DATA) {
ret32 = RespDataOffset + RespDataLen;
} else if (Read630State == READ630_RECV_OFFSET_LEN) {
ret32 = RespDataOffset;
} else if (Read630State == READ630_RECV_BACKUP_DATA_CRC) {
ret32 = RespDataCrc;
} else if (Read630State == READ630_RECV_BACKUP_DATA_RESP) {
ret32 = RespDataOffset + RespDataLen;
} else {
Read630State = READ630_IDLE;
}
} else if ((type == GET_APP_DATA_OFFSET) || (type == GET_BACKUP_DATA_OFFSET)) {
PackedTransfer_GetDataOffsetLen(type);
Read630State = READ630_WAITING_RESP;
RespDataOffset = 0;
RespDataLen = 0;
} else {
;
}
return ret32;
}
void GetDataBuf(uint32_t *pAddr, uint32_t *pLen)
{
*pAddr = ReqDataBufAddr;
*pLen = ReqDataLen;
}
void SetRecvDataSt(RECV_MCU_DATA_TYPE type, uint32_t addr, uint32_t len, uint32_t crc)
{
RespDataOffset = addr;
RespDataLen = len;
RespDataCrc = crc;
if (type == RECV_TYPE_DATA) {
Read630State = READ630_RECV_RESP_DATA;
} else if (type == RECV_TYPE_OFFSET_LEN) {
Read630State = READ630_RECV_OFFSET_LEN;
} else if (type == RECV_TYPE_WRITE_BACKUP_RESP) {
Read630State = READ630_RECV_BACKUP_DATA_RESP;
WriteBackupDataCrc = crc;
} else if (type == RECV_TYPE_BACKUP_CRC) {
Read630State = READ630_RECV_BACKUP_DATA_CRC;
} else {
;
}
}
/***************** Read 630 end ************************/
/* Test */
static uint8_t TestReadBuf[READ_MCU_DATA_MAX];
static uint32_t TestDataLen = 0;
static uint32_t TestDataCrC = 0;
static uint32_t ReadOffset = 0;
static uint32_t CalcCrcVal = 0xffffffff;
static uint32_t TestCycleNum = 0;
static uint32_t CalcCrc32(uint8_t *buf, int Len, uint32_t InitVal)
{
int i;
int n = 0;
uint32_t crc = InitVal; // Initial value
for (n = 0; n < Len; n++) {
crc ^= (uint32_t)buf[n] << 24; // crc ^= *data; data++;
for (i = 0; i < 8; ++i) {
if (crc & 0x80000000) {
crc = (crc << 1) ^ 0x04C11DB7; // 0xEDB88320= reverse 0x04C11DB7
} else {
crc = (crc << 1);
}
}
}
return crc;
}
void TestRead630Update(void)
{
uint32_t tmpLen;
static uint8_t readSt = 0;
static uint16_t getStRetryCnts = 0;
if (TestDataLen == 0) {
if (readSt == 0) {
readSt = 1;
ProcMcuOrBackupData(GET_APP_DATA_OFFSET, 0, 0, 0);
getStRetryCnts = 500;
} else {
TestDataLen = ProcMcuOrBackupData(GET_STATUS, 0, 0, 0);
if ((TestDataLen != 0) || (--getStRetryCnts == 0)) {
if (TestDataLen != 0) {
TestDataLen = RespDataLen;
TestDataCrC = RespDataCrc;
ReadOffset = 0;
CalcCrcVal = 0xffffffff;
}
readSt = 0;
}
}
} else {
if (readSt == 0) {
readSt = 1;
ProcMcuOrBackupData(REQ_DATA, ReadOffset, READ_MCU_DATA_MAX, TestReadBuf);
getStRetryCnts = 500;
ReadOffset += READ_MCU_DATA_MAX;
} else {
tmpLen = ProcMcuOrBackupData(GET_STATUS, 0, 0, 0);
if (ReadOffset == tmpLen) {
if (ReadOffset < TestDataLen) {
CalcCrcVal = CalcCrc32(TestReadBuf, READ_MCU_DATA_MAX, CalcCrcVal);
readSt = 0;
} else {
CalcCrcVal = CalcCrc32(TestReadBuf, TestDataLen - (ReadOffset - READ_MCU_DATA_MAX), CalcCrcVal);
if (CalcCrcVal != TestDataCrC) {
while (1) {
RTE_WDT_Clear();
}
} else {
TestCycleNum++;
}
getStRetryCnts = 500;
TestDataLen = 0;
TestDataCrC = 0;
readSt = 0;
}
}
if (--getStRetryCnts == 0) {
ReadOffset -= READ_MCU_DATA_MAX;
readSt = 0;
}
}
}
}
/* Test end */
/* Test */
static uint32_t TestBackupDataLen = 0;
static uint32_t TestBackupDataOffset = 0;
static uint32_t TestBackupDataOffsetEnd = 0;
static uint32_t TestBackupDataCrc = 0;
static uint8_t *pData = (uint8_t*)0x40400;
void TestWrite630Backup(void)
{
static int readstep = 0;
uint32_t tmpRet;
static uint8_t readSt = 0;
static uint16_t getStRetryCnts = 0;
TestBackupDataLen = 0x100000;
if (TestBackupDataOffset == 0) {
if (readSt == 0) {
readSt = 1;
ProcMcuOrBackupData(GET_BACKUP_DATA_OFFSET, 0, 0, NULL);
getStRetryCnts = 500;
} else {
tmpRet = ProcMcuOrBackupData(GET_STATUS, 0, 0, NULL);
if ((tmpRet != 2) || (--getStRetryCnts == 0)) {
if (tmpRet != 2) {
TestBackupDataOffset = tmpRet;
TestBackupDataOffsetEnd = TestBackupDataOffset + TestBackupDataLen;
}
readSt = 0;
}
}
} else if (TestBackupDataCrc == 0) {
if (readSt == 0) {
readSt = 1;
ProcMcuOrBackupData(GET_BACKUP_DATA_CRC, TestBackupDataOffset, TestBackupDataLen, NULL);
getStRetryCnts = 500;
} else {
tmpRet = ProcMcuOrBackupData(GET_STATUS, 0, 0, NULL);
if ((tmpRet != 2) || (--getStRetryCnts == 0)) {
if (tmpRet != 2) {
TestBackupDataCrc = tmpRet;
}
readSt = 0;
}
}
} else {
#if 1
if (readSt == 0) {
readSt = 1;
ProcMcuOrBackupData(REQ_DATA, TestBackupDataOffset, READ_MCU_DATA_MAX, TestReadBuf);
getStRetryCnts = 500;
TestBackupDataOffset += READ_MCU_DATA_MAX;
} else {
tmpRet = ProcMcuOrBackupData(GET_STATUS, 0, 0, 0);
if (TestBackupDataOffset == tmpRet) {
if (TestBackupDataOffset < TestBackupDataOffsetEnd) {
readSt = 0;
} else {
readSt = 0;
}
}
if (--getStRetryCnts == 0) {
TestBackupDataOffset -= READ_MCU_DATA_MAX;
readSt = 0;
}
}
#else
if (readSt == 0) {
readSt = 1;
ProcMcuOrBackupData(WRITE_BACKUP_DATA, TestBackupDataOffset, READ_MCU_DATA_MAX, pData);
getStRetryCnts = 1500;
TestBackupDataOffset += READ_MCU_DATA_MAX;
pData += READ_MCU_DATA_MAX;
} else {
tmpRet = ProcMcuOrBackupData(GET_STATUS, 0, 0, 0);
if (TestBackupDataOffset == tmpRet) {
if (TestBackupDataOffset < TestBackupDataOffsetEnd) {
readSt = 0;
} else {
readSt = 0;
}
}
if (--getStRetryCnts == 0) {
TestBackupDataOffset -= READ_MCU_DATA_MAX;
pData -= READ_MCU_DATA_MAX;
readSt = 0;
}
}
#endif
}
}
/* Test end */
#include "UartProtocol.h"
#include "PicBin.h"
static const uint16_t PicIndexData[] = {
Pic_0001, 1024, 0, 0, Pic_0002, 1024, 0, 0, Pic_0003, 987, 23, 397, Pic_0004, 352, 336, 140, Pic_0005, 417, 304, 155, Pic_0006, 995, 14, 397, Pic_0007, 75, 475, 289, Pic_0008, 80, 474, 152, Pic_0009, 382, 321, 261, Pic_0010, 131, 448, 274,
Pic_0011, 46, 490, 168, Pic_0012, 986, 22, 397, Pic_0004, 352, 336, 261, Pic_0013, 154, 437, 274, Pic_0014, 65, 481, 170, Pic_0004, 352, 336, 141, Pic_0015, 88, 469, 289, Pic_0016, 114, 457, 155, Pic_0017, 984, 19, 397, Pic_0018, 142, 441, 335,
Pic_0019, 70, 478, 341, Pic_0020, 47, 408, 209, Pic_0020, 47, 455, 209, Pic_0020, 47, 525, 209, Pic_0020, 47, 572, 209, Pic_0021, 11, 510, 222, Pic_0022, 44, 550, 211, Pic_0023, 16, 564, 211, Pic_0024, 44, 550, 211, Pic_0025, 40, 552, 211,
Pic_0026, 48, 548, 211, Pic_0027, 44, 550, 211, Pic_0028, 42, 551, 211, Pic_0029, 46, 549, 211, Pic_0030, 44, 550, 211, Pic_0031, 42, 551, 211, Pic_0032, 10, 567, 253, Pic_0033, 34, 555, 232, Pic_0022, 44, 409, 211, Pic_0022, 44, 457, 211,
Pic_0022, 44, 527, 211, Pic_0022, 44, 574, 211, Pic_0034, 965, 14, 397, Pic_0035, 352, 336, 324, Pic_0019, 70, 478, 348, Pic_0036, 352, 336, 266, Pic_0037, 148, 376, 289, Pic_0038, 42, 590, 287, Pic_0039, 56, 583, 287, Pic_0040, 12, 598, 289,
Pic_0040, 12, 612, 289, Pic_0040, 12, 605, 289, Pic_0041, 10, 606, 290, Pic_0042, 13, 604, 289, Pic_0043, 13, 604, 289, Pic_0044, 13, 604, 290, Pic_0045, 13, 604, 290, Pic_0046, 12, 605, 289, Pic_0047, 12, 605, 290, Pic_0048, 12, 605, 289,
Pic_0049, 12, 605, 289, Pic_0050, 4, 609, 305, Pic_0051, 7, 607, 300, Pic_0004, 352, 336, 205, Pic_0052, 74, 574, 226, Pic_0053, 76, 573, 226, Pic_0054, 79, 377, 227, Pic_0055, 86, 570, 165, Pic_0056, 98, 377, 166, Pic_0057, 958, 52, 398,
Pic_0058, 304, 360, 138, Pic_0059, 6, 509, 353, Pic_0060, 16, 504, 307, Pic_0061, 14, 505, 264, Pic_0062, 18, 503, 219, Pic_0063, 34, 495, 145, Pic_0058, 304, 360, 183, Pic_0064, 37, 493, 190, Pic_0065, 16, 504, 136, Pic_0058, 304, 360, 229,
Pic_0066, 31, 496, 236, Pic_0062, 18, 503, 186, Pic_0058, 304, 360, 274, Pic_0067, 34, 495, 281, Pic_0068, 14, 505, 236, Pic_0058, 304, 360, 325, Pic_0069, 12, 506, 332, Pic_0060, 16, 504, 286, Pic_0058, 304, 360, 332, Pic_0070, 91, 466, 342,
Pic_0059, 6, 509, 286, Pic_0060, 16, 504, 236, Pic_0068, 14, 505, 186, Pic_0062, 18, 503, 136, Pic_0071, 986, 18, 397, Pic_0004, 352, 336, 90, Pic_0072, 116, 454, 360, Pic_0073, 114, 456, 257, Pic_0074, 184, 422, 103, Pic_0004, 352, 336, 332,
Pic_0075, 205, 409, 345, Pic_0073, 114, 456, 232, Pic_0076, 105, 461, 118, Pic_0004, 352, 336, 221, Pic_0077, 200, 414, 234, Pic_0078, 114, 18, 397, Pic_0079, 113, 895, 397, Pic_0080, 115, 188, 486, Pic_0081, 142, 714, 486, Pic_0082, 64, 481, 519,
Pic_0083, 104, 23, 399, Pic_0084, 141, 869, 397, Pic_0085, 114, 188, 486, Pic_0086, 46, 762, 487, Pic_0087, 159, 435, 519, Pic_0088, 55, 47, 398, Pic_0089, 104, 193, 488, Pic_0090, 157, 435, 519, Pic_0091, 154, 567, 356, Pic_0092, 90, 368, 356,
Pic_0093, 140, 574, 292, Pic_0094, 75, 375, 292, Pic_0095, 22, 633, 240, Pic_0096, 152, 338, 228, Pic_0095, 22, 633, 175, Pic_0097, 158, 334, 163, Pic_0098, 120, 14, 398, Pic_0099, 114, 895, 397, Pic_0100, 55, 218, 487, Pic_0101, 114, 728, 486,
Pic_0102, 145, 441, 521, Pic_0103, 105, 22, 397, Pic_0104, 113, 895, 397, Pic_0105, 120, 184, 487, Pic_0106, 104, 733, 488, Pic_0107, 75, 476, 519, Pic_0108, 112, 19, 397, Pic_0109, 104, 899, 399, Pic_0110, 105, 192, 486, Pic_0111, 54, 758, 487,
Pic_0112, 166, 429, 519, Pic_0113, 142, 14, 397, Pic_0114, 55, 924, 398, Pic_0115, 112, 189, 486, Pic_0116, 120, 724, 487, Pic_0117, 145, 440, 519, Pic_0118, 46, 52, 398, Pic_0119, 119, 891, 398, Pic_0120, 142, 174, 486, Pic_0121, 105, 732, 486,
Pic_0122, 155, 436, 519, Pic_0123, 115, 18, 397, Pic_0124, 106, 898, 397, Pic_0086, 46, 222, 487, Pic_0125, 112, 729, 486, Pic_0126, 197, 415, 519, Pic_0127, 972, 27, 396, Pic_0128, 168, 429, 152, Pic_0129, 971, 28, 396, Pic_0130, 971, 27, 396,
Pic_0131, 154, 435, 272, Pic_0132, 78, 474, 168, Pic_0133, 79, 473, 288, Pic_0134, 153, 436, 152, Pic_0135, 971, 27, 396, Pic_0136, 46, 489, 338, Pic_0137, 972, 26, 396, Pic_0136, 46, 489, 345, Pic_0138, 42, 590, 287, Pic_0139, 119, 369, 287,
Pic_0140, 53, 584, 226, Pic_0141, 53, 584, 226, Pic_0142, 95, 367, 226, Pic_0143, 95, 367, 163, Pic_0144, 961, 37, 396, Pic_0145, 76, 477, 340, Pic_0146, 972, 27, 396, Pic_0147, 76, 476, 359, Pic_0148, 79, 472, 256, Pic_0149, 132, 448, 101,
Pic_0150, 134, 448, 343, Pic_0148, 79, 472, 231, Pic_0151, 75, 476, 117, Pic_0152, 155, 434, 232, Pic_0153, 94, 27, 396, Pic_0154, 95, 903, 396, Pic_0155, 95, 197, 485, Pic_0156, 95, 737, 485, Pic_0157, 101, 461, 517, Pic_0158, 95, 27, 396,
Pic_0159, 96, 903, 396, Pic_0160, 95, 197, 485, Pic_0161, 73, 747, 485, Pic_0162, 135, 445, 517, Pic_0163, 95, 27, 396, Pic_0164, 74, 913, 396, Pic_0165, 95, 197, 485, Pic_0155, 95, 737, 485, Pic_0166, 135, 445, 517, Pic_0167, 129, 341, 354,
Pic_0168, 110, 350, 290, Pic_0169, 104, 353, 227, Pic_0170, 102, 354, 162, Pic_0171, 94, 28, 396, Pic_0172, 96, 903, 396, Pic_0173, 95, 197, 485, Pic_0160, 95, 737, 485, Pic_0174, 135, 445, 517, Pic_0175, 95, 27, 396, Pic_0176, 95, 903, 396,
Pic_0177, 94, 198, 485, Pic_0165, 95, 737, 485, Pic_0178, 135, 445, 517, Pic_0179, 95, 27, 396, Pic_0180, 95, 903, 396, Pic_0181, 95, 197, 485, Pic_0173, 95, 737, 485, Pic_0182, 134, 446, 517, Pic_0183, 96, 26, 396, Pic_0184, 95, 903, 396,
Pic_0185, 95, 197, 485, Pic_0177, 94, 738, 485, Pic_0186, 135, 445, 517, Pic_0187, 73, 37, 396, Pic_0188, 94, 904, 396, Pic_0156, 95, 197, 485, Pic_0181, 95, 737, 485, Pic_0189, 134, 446, 517, Pic_0190, 95, 27, 396, Pic_0191, 96, 903, 396,
Pic_0161, 73, 207, 485, Pic_0185, 95, 737, 485, Pic_0192, 135, 445, 517, Pic_0193, 1024, 0, 0, Pic_0194, 987, 23, 397, Pic_0195, 417, 304, 155, Pic_0196, 995, 14, 397, Pic_0197, 131, 448, 274, Pic_0198, 46, 490, 168, Pic_0199, 75, 475, 289,
Pic_0200, 80, 474, 152, Pic_0201, 986, 22, 397, Pic_0202, 154, 437, 274, Pic_0203, 65, 481, 170, Pic_0204, 88, 469, 289, Pic_0205, 114, 457, 155, Pic_0206, 984, 19, 397, Pic_0207, 150, 437, 316, Pic_0208, 70, 478, 341, Pic_0209, 11, 510, 222,
Pic_0210, 44, 550, 211, Pic_0211, 16, 564, 211, Pic_0212, 44, 550, 211, Pic_0213, 40, 552, 211, Pic_0214, 48, 548, 211, Pic_0215, 44, 550, 211, Pic_0216, 42, 551, 211, Pic_0217, 46, 549, 211, Pic_0218, 44, 550, 211, Pic_0219, 42, 551, 211,
Pic_0220, 10, 567, 253, Pic_0221, 34, 555, 232, Pic_0210, 44, 409, 211, Pic_0210, 44, 457, 211, Pic_0210, 44, 527, 211, Pic_0210, 44, 574, 211, Pic_0222, 965, 14, 397, Pic_0208, 70, 478, 348, Pic_0223, 42, 590, 287, Pic_0224, 56, 583, 287,
Pic_0225, 12, 598, 289, Pic_0225, 12, 612, 289, Pic_0225, 12, 605, 289, Pic_0226, 10, 606, 290, Pic_0227, 13, 604, 289, Pic_0228, 13, 604, 289, Pic_0229, 13, 604, 290, Pic_0230, 13, 604, 290, Pic_0231, 12, 605, 289, Pic_0232, 12, 605, 290,
Pic_0233, 12, 605, 289, Pic_0234, 12, 605, 289, Pic_0235, 4, 609, 305, Pic_0236, 7, 607, 300, Pic_0237, 148, 376, 289, Pic_0238, 74, 574, 226, Pic_0239, 76, 573, 226, Pic_0240, 79, 377, 227, Pic_0241, 86, 570, 165, Pic_0242, 98, 377, 166,
Pic_0243, 958, 52, 398, Pic_0244, 304, 360, 103, Pic_0245, 6, 509, 353, Pic_0246, 16, 504, 307, Pic_0247, 14, 505, 264, Pic_0248, 18, 503, 219, Pic_0249, 34, 495, 145, Pic_0244, 304, 360, 148, Pic_0250, 37, 493, 190, Pic_0251, 16, 504, 136,
Pic_0244, 304, 360, 194, Pic_0252, 31, 496, 236, Pic_0248, 18, 503, 186, Pic_0244, 304, 360, 239, Pic_0253, 34, 495, 281, Pic_0254, 14, 505, 236, Pic_0244, 304, 360, 290, Pic_0255, 12, 506, 332, Pic_0246, 16, 504, 286, Pic_0244, 304, 360, 297,
Pic_0256, 91, 466, 342, Pic_0245, 6, 509, 286, Pic_0246, 16, 504, 236, Pic_0254, 14, 505, 186, Pic_0248, 18, 503, 136, Pic_0257, 986, 18, 397, Pic_0258, 116, 454, 360, Pic_0259, 114, 456, 257, Pic_0260, 184, 422, 103, Pic_0261, 205, 409, 345,
Pic_0259, 114, 456, 232, Pic_0262, 105, 461, 118, Pic_0263, 200, 414, 234, Pic_0264, 114, 18, 397, Pic_0265, 113, 895, 397, Pic_0266, 115, 188, 486, Pic_0267, 142, 714, 486, Pic_0268, 64, 481, 519, Pic_0269, 104, 23, 399, Pic_0270, 141, 869, 397,
Pic_0271, 114, 188, 486, Pic_0272, 46, 762, 487, Pic_0273, 159, 435, 519, Pic_0274, 55, 47, 398, Pic_0275, 46, 916, 398, Pic_0276, 104, 193, 488, Pic_0277, 115, 728, 486, Pic_0278, 157, 435, 519, Pic_0279, 154, 567, 356, Pic_0280, 90, 368, 356,
Pic_0281, 140, 574, 292, Pic_0282, 75, 375, 292, Pic_0283, 22, 633, 240, Pic_0284, 152, 338, 228, Pic_0283, 22, 633, 175, Pic_0285, 158, 334, 163, Pic_0286, 120, 14, 398, Pic_0287, 114, 895, 397, Pic_0288, 55, 218, 487, Pic_0289, 114, 728, 486,
Pic_0290, 145, 441, 521, Pic_0291, 105, 22, 397, Pic_0292, 113, 895, 397, Pic_0293, 120, 184, 487, Pic_0294, 104, 733, 488, Pic_0295, 75, 476, 519, Pic_0296, 112, 19, 397, Pic_0297, 104, 899, 399, Pic_0298, 105, 192, 486, Pic_0299, 54, 758, 487,
Pic_0300, 166, 429, 519, Pic_0301, 142, 14, 397, Pic_0302, 55, 924, 398, Pic_0303, 112, 189, 486, Pic_0304, 120, 724, 487, Pic_0305, 145, 440, 519, Pic_0306, 46, 52, 398, Pic_0307, 119, 891, 398, Pic_0308, 142, 174, 486, Pic_0309, 105, 732, 486,
Pic_0310, 155, 436, 519, Pic_0311, 115, 18, 397, Pic_0312, 106, 898, 397, Pic_0272, 46, 222, 487, Pic_0313, 112, 729, 486, Pic_0314, 197, 415, 519, Pic_0315, 972, 27, 396, Pic_0316, 168, 429, 152, Pic_0317, 971, 28, 396, Pic_0318, 971, 27, 396,
Pic_0319, 154, 435, 272, Pic_0320, 78, 474, 168, Pic_0321, 79, 473, 288, Pic_0322, 153, 436, 152, Pic_0323, 971, 27, 396, Pic_0324, 46, 489, 338, Pic_0325, 972, 26, 396, Pic_0324, 46, 489, 345, Pic_0326, 119, 369, 287, Pic_0327, 53, 584, 226,
Pic_0328, 53, 584, 226, Pic_0329, 95, 367, 226, Pic_0330, 95, 367, 163, Pic_0331, 961, 37, 396, Pic_0332, 76, 477, 340, Pic_0333, 972, 27, 396, Pic_0334, 76, 476, 359, Pic_0335, 79, 472, 256, Pic_0336, 132, 448, 101, Pic_0337, 134, 448, 343,
Pic_0335, 79, 472, 231, Pic_0338, 75, 476, 117, Pic_0339, 155, 434, 232, Pic_0340, 94, 27, 396, Pic_0341, 95, 903, 396, Pic_0342, 95, 197, 485, Pic_0343, 95, 737, 485, Pic_0344, 101, 461, 517, Pic_0345, 95, 27, 396, Pic_0346, 96, 903, 396,
Pic_0347, 95, 197, 485, Pic_0348, 73, 747, 485, Pic_0349, 135, 445, 517, Pic_0350, 95, 27, 396, Pic_0351, 74, 913, 396, Pic_0352, 95, 197, 485, Pic_0342, 95, 737, 485, Pic_0353, 135, 445, 517, Pic_0354, 129, 341, 354, Pic_0355, 110, 350, 290,
Pic_0356, 104, 353, 227, Pic_0357, 102, 354, 162, Pic_0358, 94, 28, 396, Pic_0359, 96, 903, 396, Pic_0360, 95, 197, 485, Pic_0347, 95, 737, 485, Pic_0361, 135, 445, 517, Pic_0362, 95, 27, 396, Pic_0363, 95, 903, 396, Pic_0364, 94, 198, 485,
Pic_0352, 95, 737, 485, Pic_0365, 135, 445, 517, Pic_0366, 95, 27, 396, Pic_0367, 95, 903, 396, Pic_0368, 95, 197, 485, Pic_0360, 95, 737, 485, Pic_0369, 134, 446, 517, Pic_0370, 96, 26, 396, Pic_0371, 95, 903, 396, Pic_0372, 95, 197, 485,
Pic_0364, 94, 738, 485, Pic_0373, 135, 445, 517, Pic_0374, 73, 37, 396, Pic_0375, 94, 904, 396, Pic_0343, 95, 197, 485, Pic_0368, 95, 737, 485, Pic_0376, 134, 446, 517, Pic_0377, 95, 27, 396, Pic_0378, 96, 903, 396, Pic_0348, 73, 207, 485,
Pic_0372, 95, 737, 485, Pic_0379, 135, 445, 517, Pic_0380, 13, 396, 528, Pic_0381, 13, 615, 528, Pic_0382, 1024, 0, 0, Pic_0383, 1521, 0, 470, Pic_0384, 106, 103, 570, Pic_0385, 30, 63, 554, Pic_0385, 30, 33, 554, Pic_0386, 10, 73, 554,
Pic_0387, 28, 64, 554, Pic_0388, 26, 65, 554, Pic_0389, 32, 62, 554, Pic_0390, 28, 64, 554, Pic_0391, 28, 64, 554, Pic_0392, 30, 63, 554, Pic_0393, 30, 63, 554, Pic_0394, 28, 64, 554, Pic_0395, 6, 75, 582, Pic_0396, 22, 67, 568,
Pic_0385, 30, 250, 553, Pic_0385, 30, 280, 553, Pic_0397, 7, 315, 562, Pic_0385, 30, 327, 553, Pic_0385, 30, 357, 553, Pic_0386, 10, 367, 553, Pic_0387, 28, 358, 553, Pic_0388, 26, 359, 553, Pic_0389, 32, 356, 553, Pic_0390, 28, 358, 553,
Pic_0391, 28, 358, 553, Pic_0392, 30, 357, 553, Pic_0393, 30, 357, 553, Pic_0394, 28, 358, 553, Pic_0395, 6, 369, 581, Pic_0396, 22, 361, 567, Pic_0398, 52, 632, 551, Pic_0399, 57, 424, 510, Pic_0399, 57, 484, 510, Pic_0399, 57, 544, 510,
Pic_0399, 57, 454, 510, Pic_0399, 57, 514, 510, Pic_0400, 20, 502, 509, Pic_0401, 54, 485, 509, Pic_0402, 52, 486, 509, Pic_0403, 62, 481, 509, Pic_0404, 55, 485, 509, Pic_0405, 54, 485, 509, Pic_0406, 58, 483, 509, Pic_0407, 56, 484, 509,
Pic_0408, 54, 485, 509, Pic_0409, 12, 506, 563, Pic_0410, 42, 491, 536, Pic_0411, 12, 56, 533, Pic_0412, 12, 314, 533, Pic_0413, 234, 74, 533, Pic_0414, 27, 76, 536, Pic_0415, 27, 76, 536, Pic_0416, 27, 105, 536, Pic_0417, 27, 134, 536,
Pic_0418, 27, 163, 536, Pic_0419, 27, 192, 536, Pic_0420, 27, 221, 536, Pic_0421, 27, 250, 536, Pic_0422, 27, 279, 536, Pic_0423, 21, 26, 529, Pic_0424, 21, 26, 529, Pic_0425, 12, 709, 533, Pic_0426, 12, 967, 533, Pic_0413, 234, 727, 533,
Pic_0414, 27, 729, 536, Pic_0427, 27, 729, 536, Pic_0428, 27, 758, 536, Pic_0429, 27, 787, 536, Pic_0430, 27, 816, 536, Pic_0431, 27, 845, 536, Pic_0432, 27, 874, 536, Pic_0433, 27, 903, 536, Pic_0434, 27, 932, 536, Pic_0435, 30, 981, 528,
Pic_0436, 30, 981, 528, Pic_0437, 133, 786, 561, Pic_0438, 11, 847, 561, Pic_0439, 10, 848, 561, Pic_0440, 11, 847, 561, Pic_0441, 11, 847, 561, Pic_0442, 11, 847, 561, Pic_0443, 11, 847, 561, Pic_0444, 11, 847, 561, Pic_0445, 11, 847, 561,
Pic_0446, 11, 847, 561, Pic_0447, 11, 847, 561, Pic_0448, 3, 851, 575, Pic_0449, 7, 849, 571, Pic_0450, 28, 751, 555, Pic_0451, 28, 751, 555, Pic_0452, 13, 717, 516, Pic_0453, 11, 683, 516, Pic_0453, 11, 693, 516, Pic_0454, 3, 704, 526,
Pic_0453, 11, 707, 516, Pic_0452, 13, 712, 516, Pic_0453, 11, 688, 516, Pic_0454, 3, 699, 526, Pic_0453, 11, 702, 516, Pic_0455, 4, 692, 516, Pic_0456, 10, 689, 516, Pic_0457, 9, 689, 516, Pic_0458, 11, 688, 516, Pic_0459, 10, 689, 516,
Pic_0460, 9, 689, 516, Pic_0461, 11, 688, 516, Pic_0462, 11, 688, 516, Pic_0463, 9, 689, 516, Pic_0454, 3, 692, 526, Pic_0464, 8, 690, 521, Pic_0465, 30, 881, 487, Pic_0466, 42, 874, 488, Pic_0467, 37, 952, 481, Pic_0468, 19, 819, 486,
Pic_0469, 35, 749, 487, Pic_0470, 27, 687, 486, Pic_0471, 33, 312, 486, Pic_0472, 27, 251, 485, Pic_0473, 45, 172, 490, Pic_0474, 37, 101, 487, Pic_0475, 37, 30, 481, Pic_0476, 1024, 0, 0, Pic_0477, 163, 178, 130, Pic_0478, 49, 188, 310,
Pic_0479, 11, 242, 313, Pic_0480, 3, 255, 326, Pic_0479, 11, 260, 313, Pic_0480, 3, 272, 326, Pic_0479, 11, 277, 313, Pic_0480, 3, 289, 326, Pic_0479, 11, 294, 313, Pic_0479, 11, 253, 313, Pic_0480, 3, 266, 326, Pic_0479, 11, 271, 313,
Pic_0479, 11, 282, 313, Pic_0480, 3, 295, 326, Pic_0479, 11, 300, 313, Pic_0479, 11, 311, 313, Pic_0480, 3, 324, 326, Pic_0479, 11, 329, 313, Pic_0479, 11, 340, 313, Pic_0481, 9, 295, 313, Pic_0482, 11, 294, 313, Pic_0483, 11, 294, 313,
Pic_0484, 11, 294, 313, Pic_0485, 11, 294, 313, Pic_0486, 10, 295, 313, Pic_0487, 10, 295, 313, Pic_0488, 11, 294, 313, Pic_0489, 11, 294, 313, Pic_0480, 3, 298, 326, Pic_0490, 7, 296, 322, Pic_0491, 49, 188, 343, Pic_0492, 61, 243, 344,
Pic_0493, 62, 242, 344, Pic_0494, 302, 410, 144, Pic_0495, 274, 655, 197, Pic_0496, 233, 410, 197, Pic_0497, 226, 486, 251, Pic_0498, 71, 411, 252, Pic_0499, 21, 32, 15, Pic_0500, 19, 66, 16, Pic_0501, 17, 67, 15, Pic_0502, 19, 66, 16,
Pic_0503, 3, 508, 22, Pic_0504, 9, 485, 17, Pic_0504, 9, 497, 17, Pic_0504, 9, 513, 17, Pic_0504, 9, 525, 17, Pic_0505, 9, 525, 17, Pic_0506, 10, 524, 17, Pic_0507, 10, 524, 17, Pic_0508, 11, 524, 17, Pic_0509, 10, 524, 17,
Pic_0510, 10, 525, 17, Pic_0511, 10, 525, 17, Pic_0512, 11, 524, 17, Pic_0513, 10, 524, 17, Pic_0514, 3, 528, 30, Pic_0515, 5, 527, 26, Pic_0516, 37, 955, 14, Pic_0517, 29, 958, 18, Pic_0518, 1270, 0, 0, Pic_0519, 364, 648, 5,
Pic_0520, 78, 760, 50, Pic_0521, 1024, 0, 0, Pic_0522, 6, 916, 503, Pic_0523, 23, 868, 491, Pic_0523, 23, 891, 491, Pic_0523, 23, 927, 491, Pic_0523, 23, 950, 491, Pic_0524, 9, 957, 491, Pic_0525, 21, 951, 491, Pic_0526, 20, 952, 491,
Pic_0527, 24, 950, 491, Pic_0528, 21, 951, 491, Pic_0529, 21, 951, 491, Pic_0530, 23, 950, 491, Pic_0531, 22, 951, 491, Pic_0532, 21, 951, 491, Pic_0533, 5, 959, 511, Pic_0534, 17, 953, 501, Pic_0535, 73, 53, 463, Pic_0536, 13, 54, 499,
Pic_0536, 13, 68, 499, Pic_0536, 13, 82, 499, Pic_0536, 13, 96, 499, Pic_0536, 13, 110, 499, Pic_0536, 13, 124, 499, Pic_0536, 13, 138, 499, Pic_0536, 13, 152, 499, Pic_0536, 13, 166, 499, Pic_0536, 13, 180, 499, Pic_0536, 13, 194, 499,
Pic_0537, 11, 55, 499, Pic_0538, 13, 54, 499, Pic_0539, 12, 54, 499, Pic_0540, 13, 54, 499, Pic_0541, 12, 54, 499, Pic_0542, 12, 55, 499, Pic_0543, 12, 54, 499, Pic_0544, 13, 54, 499, Pic_0545, 12, 54, 499, Pic_0546, 4, 58, 514,
Pic_0547, 7, 57, 510, Pic_0548, 41, 62, 401, Pic_0549, 13, 299, 533, Pic_0550, 13, 715, 533, Pic_0551, 35, 503, 529, Pic_0552, 35, 503, 529, Pic_0553, 396, 315, 473, Pic_0554, 90, 315, 473, Pic_0555, 76, 366, 473, Pic_0556, 51, 426, 473,
Pic_0557, 44, 469, 473, Pic_0558, 45, 514, 473, Pic_0559, 53, 550, 473, Pic_0560, 77, 586, 473, Pic_0561, 88, 623, 473, Pic_0562, 89, 315, 473, Pic_0563, 52, 923, 407, Pic_0564, 19, 966, 451, Pic_0565, 15, 915, 451, Pic_0565, 15, 930, 451,
Pic_0565, 15, 951, 451, Pic_0566, 3, 946, 465, Pic_0564, 19, 958, 451, Pic_0565, 15, 922, 451, Pic_0565, 15, 943, 451, Pic_0566, 3, 938, 465, Pic_0567, 5, 948, 451, Pic_0568, 14, 944, 451, Pic_0569, 13, 944, 451, Pic_0570, 16, 943, 451,
Pic_0571, 15, 943, 451, Pic_0572, 14, 944, 451, Pic_0573, 15, 943, 451, Pic_0574, 15, 943, 451, Pic_0575, 14, 944, 451, Pic_0566, 3, 949, 465, Pic_0576, 12, 945, 458, Pic_0577, 355, 48, 272, Pic_0578, 52, 55, 296, Pic_0579, 24, 53, 328,
Pic_0579, 24, 77, 328, Pic_0579, 24, 101, 328, Pic_0579, 24, 125, 328, Pic_0579, 24, 149, 328, Pic_0579, 24, 173, 328, Pic_0580, 50, 211, 324, Pic_0580, 50, 187, 324, Pic_0580, 50, 163, 324, Pic_0580, 50, 139, 324, Pic_0580, 50, 115, 324,
Pic_0580, 50, 91, 324, Pic_0581, 8, 61, 327, Pic_0582, 22, 54, 327, Pic_0583, 22, 54, 327, Pic_0584, 26, 52, 327, Pic_0585, 22, 54, 327, Pic_0586, 22, 54, 327, Pic_0587, 24, 53, 327, Pic_0588, 24, 53, 327, Pic_0589, 22, 54, 327,
Pic_0590, 6, 62, 349, Pic_0591, 18, 56, 338, Pic_0592, 355, 617, 271, Pic_0593, 85, 889, 310, Pic_0594, 112, 338, 256, Pic_0594, 112, 456, 256, Pic_0594, 112, 574, 256, Pic_0594, 112, 397, 256, Pic_0594, 112, 515, 256, Pic_0595, 40, 492, 255,
Pic_0596, 108, 458, 255, Pic_0597, 102, 461, 255, Pic_0598, 122, 451, 255, Pic_0599, 109, 458, 255, Pic_0600, 106, 459, 255, Pic_0601, 116, 454, 255, Pic_0602, 112, 456, 255, Pic_0603, 106, 459, 255, Pic_0604, 24, 500, 361, Pic_0605, 84, 470, 308,
Pic_0606, 93, 834, 199, Pic_0607, 823, 94, 110, Pic_0608, 135, 782, 125, Pic_0609, 144, 731, 111, Pic_0610, 144, 677, 110, Pic_0611, 113, 623, 119, Pic_0612, 74, 569, 149, Pic_0613, 68, 511, 149, Pic_0614, 70, 446, 149, Pic_0615, 82, 381, 149,
Pic_0616, 119, 291, 128, Pic_0617, 160, 193, 110, Pic_0618, 161, 140, 111, Pic_0619, 154, 94, 123, Pic_0620, 20, 56, 165, Pic_0621, 7, 118, 95, Pic_0622, 19, 178, 81, Pic_0623, 18, 268, 89, Pic_0624, 21, 350, 114, Pic_0625, 19, 422, 114,
Pic_0626, 18, 498, 114, Pic_0627, 21, 570, 114, Pic_0628, 20, 634, 114, Pic_0629, 19, 721, 86, Pic_0630, 28, 803, 81, Pic_0631, 15, 877, 95, Pic_0632, 27, 925, 165, Pic_0633, 1024, 0, 0, Pic_0634, 6, 916, 503, Pic_0635, 23, 868, 491,
Pic_0635, 23, 891, 491, Pic_0635, 23, 927, 491, Pic_0635, 23, 950, 491, Pic_0636, 9, 957, 491, Pic_0637, 21, 951, 491, Pic_0638, 20, 952, 491, Pic_0639, 24, 950, 491, Pic_0640, 21, 951, 491, Pic_0641, 21, 951, 491, Pic_0642, 23, 950, 491,
Pic_0643, 22, 951, 491, Pic_0644, 21, 951, 491, Pic_0645, 5, 959, 511, Pic_0646, 17, 953, 501, Pic_0647, 73, 53, 463, Pic_0648, 13, 54, 499, Pic_0648, 13, 68, 499, Pic_0648, 13, 82, 499, Pic_0648, 13, 96, 499, Pic_0648, 13, 110, 499,
Pic_0648, 13, 124, 499, Pic_0648, 13, 138, 499, Pic_0648, 13, 152, 499, Pic_0648, 13, 166, 499, Pic_0648, 13, 180, 499, Pic_0648, 13, 194, 499, Pic_0649, 11, 55, 499, Pic_0650, 13, 54, 499, Pic_0651, 12, 54, 499, Pic_0652, 13, 54, 499,
Pic_0653, 12, 54, 499, Pic_0654, 12, 55, 499, Pic_0655, 12, 54, 499, Pic_0656, 13, 54, 499, Pic_0657, 12, 54, 499, Pic_0658, 4, 58, 514, Pic_0659, 7, 57, 510, Pic_0660, 13, 715, 533, Pic_0661, 35, 503, 529, Pic_0662, 396, 315, 473,
Pic_0663, 90, 315, 473, Pic_0664, 76, 366, 473, Pic_0665, 51, 426, 473, Pic_0666, 44, 469, 473, Pic_0667, 45, 514, 473, Pic_0668, 53, 550, 473, Pic_0669, 77, 586, 473, Pic_0670, 88, 623, 473, Pic_0671, 89, 315, 473, Pic_0672, 19, 966, 451,
Pic_0673, 15, 915, 451, Pic_0673, 15, 930, 451, Pic_0673, 15, 951, 451, Pic_0674, 3, 946, 465, Pic_0672, 19, 958, 451, Pic_0673, 15, 922, 451, Pic_0673, 15, 943, 451, Pic_0674, 3, 938, 465, Pic_0675, 5, 948, 451, Pic_0676, 14, 944, 451,
Pic_0677, 13, 944, 451, Pic_0678, 16, 943, 451, Pic_0679, 15, 943, 451, Pic_0680, 14, 944, 451, Pic_0681, 15, 943, 451, Pic_0682, 15, 943, 451, Pic_0683, 14, 944, 451, Pic_0674, 3, 949, 465, Pic_0684, 12, 945, 458, Pic_0685, 355, 48, 272,
Pic_0686, 52, 55, 296, Pic_0687, 24, 53, 328, Pic_0687, 24, 77, 328, Pic_0687, 24, 101, 328, Pic_0687, 24, 125, 328, Pic_0687, 24, 149, 328, Pic_0687, 24, 173, 328, Pic_0688, 50, 211, 324, Pic_0688, 50, 187, 324, Pic_0688, 50, 163, 324,
Pic_0688, 50, 139, 324, Pic_0688, 50, 115, 324, Pic_0688, 50, 91, 324, Pic_0689, 8, 61, 327, Pic_0690, 22, 54, 327, Pic_0691, 22, 54, 327, Pic_0692, 26, 52, 327, Pic_0693, 22, 54, 327, Pic_0694, 22, 54, 327, Pic_0695, 24, 53, 327,
Pic_0696, 24, 53, 327, Pic_0697, 22, 54, 327, Pic_0698, 6, 62, 349, Pic_0699, 18, 56, 338, Pic_0700, 355, 617, 271, Pic_0701, 85, 889, 310, Pic_0702, 112, 338, 256, Pic_0702, 112, 456, 256, Pic_0702, 112, 574, 256, Pic_0702, 112, 397, 256,
Pic_0702, 112, 515, 256, Pic_0703, 40, 492, 255, Pic_0704, 108, 458, 255, Pic_0705, 102, 461, 255, Pic_0706, 122, 451, 255, Pic_0707, 109, 458, 255, Pic_0708, 106, 459, 255, Pic_0709, 116, 454, 255, Pic_0710, 112, 456, 255, Pic_0711, 106, 459, 255,
Pic_0712, 24, 500, 361, Pic_0713, 84, 470, 308, Pic_0714, 93, 834, 199, Pic_0715, 823, 94, 110, Pic_0716, 135, 782, 125, Pic_0717, 144, 731, 111, Pic_0718, 142, 677, 110, Pic_0719, 113, 623, 119, Pic_0720, 73, 570, 149, Pic_0721, 68, 511, 149,
Pic_0722, 423, 94, 114, Pic_0723, 85, 379, 149, Pic_0724, 119, 292, 128, Pic_0725, 165, 191, 110, Pic_0726, 198, 138, 111, Pic_0727, 153, 94, 123, Pic_0728, 20, 56, 165, Pic_0729, 7, 118, 95, Pic_0730, 19, 178, 81, Pic_0731, 18, 268, 89,
Pic_0732, 21, 350, 114, Pic_0733, 19, 422, 114, Pic_0734, 18, 498, 114, Pic_0735, 21, 570, 114, Pic_0736, 56, 941, 13, Pic_0737, 44, 875, 23, Pic_0738, 61, 792, 25, Pic_0739, 39, 731, 19, Pic_0740, 28, 682, 21, Pic_0741, 44, 616, 20,
Pic_0742, 50, 544, 22, Pic_0743, 47, 476, 20, Pic_0744, 53, 402, 21, Pic_0745, 39, 341, 21, Pic_0746, 86, 233, 26, Pic_0747, 64, 244, 26, Pic_0748, 16, 194, 26, Pic_0749, 19, 192, 26, Pic_0750, 65, 106, 26, Pic_0751, 56, 111, 30,
Pic_0752, 56, 28, 13,
};
#define PicIndexData_LEN 14888
//uint32_t PicIndexDataLEN = 0;
void User_PicIndexDataInit(void)
{
//PicIndexDataLEN = sizeof(PicIndexData);
SetPicIndexData((uint8_t *)PicIndexData, sizeof(PicIndexData), PIC_INDEX_DATA_CRC);
}
\ No newline at end of file
#ifndef PICBIN_H
#define PICBIN_H
/* Flash Bin Version:20240701 2024-07-01 18:53:59 Compression ratio:70.00% */
#define Pic_0001 1
#define Pic_0002 2
#define Pic_0003 3
#define Pic_0004 4
#define Pic_0005 5
#define Pic_0006 6
#define Pic_0007 7
#define Pic_0008 8
#define Pic_0009 9
#define Pic_0010 10
#define Pic_0011 11
#define Pic_0012 12
#define Pic_0013 13
#define Pic_0014 14
#define Pic_0015 15
#define Pic_0016 16
#define Pic_0017 17
#define Pic_0018 18
#define Pic_0019 19
#define Pic_0020 20
#define Pic_0021 21
#define Pic_0022 22
#define Pic_0023 23
#define Pic_0024 24
#define Pic_0025 25
#define Pic_0026 26
#define Pic_0027 27
#define Pic_0028 28
#define Pic_0029 29
#define Pic_0030 30
#define Pic_0031 31
#define Pic_0032 32
#define Pic_0033 33
#define Pic_0034 34
#define Pic_0035 35
#define Pic_0036 36
#define Pic_0037 37
#define Pic_0038 38
#define Pic_0039 39
#define Pic_0040 40
#define Pic_0041 41
#define Pic_0042 42
#define Pic_0043 43
#define Pic_0044 44
#define Pic_0045 45
#define Pic_0046 46
#define Pic_0047 47
#define Pic_0048 48
#define Pic_0049 49
#define Pic_0050 50
#define Pic_0051 51
#define Pic_0052 52
#define Pic_0053 53
#define Pic_0054 54
#define Pic_0055 55
#define Pic_0056 56
#define Pic_0057 57
#define Pic_0058 58
#define Pic_0059 59
#define Pic_0060 60
#define Pic_0061 61
#define Pic_0062 62
#define Pic_0063 63
#define Pic_0064 64
#define Pic_0065 65
#define Pic_0066 66
#define Pic_0067 67
#define Pic_0068 68
#define Pic_0069 69
#define Pic_0070 70
#define Pic_0071 71
#define Pic_0072 72
#define Pic_0073 73
#define Pic_0074 74
#define Pic_0075 75
#define Pic_0076 76
#define Pic_0077 77
#define Pic_0078 78
#define Pic_0079 79
#define Pic_0080 80
#define Pic_0081 81
#define Pic_0082 82
#define Pic_0083 83
#define Pic_0084 84
#define Pic_0085 85
#define Pic_0086 86
#define Pic_0087 87
#define Pic_0088 88
#define Pic_0089 89
#define Pic_0090 90
#define Pic_0091 91
#define Pic_0092 92
#define Pic_0093 93
#define Pic_0094 94
#define Pic_0095 95
#define Pic_0096 96
#define Pic_0097 97
#define Pic_0098 98
#define Pic_0099 99
#define Pic_0100 100
#define Pic_0101 101
#define Pic_0102 102
#define Pic_0103 103
#define Pic_0104 104
#define Pic_0105 105
#define Pic_0106 106
#define Pic_0107 107
#define Pic_0108 108
#define Pic_0109 109
#define Pic_0110 110
#define Pic_0111 111
#define Pic_0112 112
#define Pic_0113 113
#define Pic_0114 114
#define Pic_0115 115
#define Pic_0116 116
#define Pic_0117 117
#define Pic_0118 118
#define Pic_0119 119
#define Pic_0120 120
#define Pic_0121 121
#define Pic_0122 122
#define Pic_0123 123
#define Pic_0124 124
#define Pic_0125 125
#define Pic_0126 126
#define Pic_0127 127
#define Pic_0128 128
#define Pic_0129 129
#define Pic_0130 130
#define Pic_0131 131
#define Pic_0132 132
#define Pic_0133 133
#define Pic_0134 134
#define Pic_0135 135
#define Pic_0136 136
#define Pic_0137 137
#define Pic_0138 138
#define Pic_0139 139
#define Pic_0140 140
#define Pic_0141 141
#define Pic_0142 142
#define Pic_0143 143
#define Pic_0144 144
#define Pic_0145 145
#define Pic_0146 146
#define Pic_0147 147
#define Pic_0148 148
#define Pic_0149 149
#define Pic_0150 150
#define Pic_0151 151
#define Pic_0152 152
#define Pic_0153 153
#define Pic_0154 154
#define Pic_0155 155
#define Pic_0156 156
#define Pic_0157 157
#define Pic_0158 158
#define Pic_0159 159
#define Pic_0160 160
#define Pic_0161 161
#define Pic_0162 162
#define Pic_0163 163
#define Pic_0164 164
#define Pic_0165 165
#define Pic_0166 166
#define Pic_0167 167
#define Pic_0168 168
#define Pic_0169 169
#define Pic_0170 170
#define Pic_0171 171
#define Pic_0172 172
#define Pic_0173 173
#define Pic_0174 174
#define Pic_0175 175
#define Pic_0176 176
#define Pic_0177 177
#define Pic_0178 178
#define Pic_0179 179
#define Pic_0180 180
#define Pic_0181 181
#define Pic_0182 182
#define Pic_0183 183
#define Pic_0184 184
#define Pic_0185 185
#define Pic_0186 186
#define Pic_0187 187
#define Pic_0188 188
#define Pic_0189 189
#define Pic_0190 190
#define Pic_0191 191
#define Pic_0192 192
#define Pic_0193 193
#define Pic_0194 194
#define Pic_0195 195
#define Pic_0196 196
#define Pic_0197 197
#define Pic_0198 198
#define Pic_0199 199
#define Pic_0200 200
#define Pic_0201 201
#define Pic_0202 202
#define Pic_0203 203
#define Pic_0204 204
#define Pic_0205 205
#define Pic_0206 206
#define Pic_0207 207
#define Pic_0208 208
#define Pic_0209 209
#define Pic_0210 210
#define Pic_0211 211
#define Pic_0212 212
#define Pic_0213 213
#define Pic_0214 214
#define Pic_0215 215
#define Pic_0216 216
#define Pic_0217 217
#define Pic_0218 218
#define Pic_0219 219
#define Pic_0220 220
#define Pic_0221 221
#define Pic_0222 222
#define Pic_0223 223
#define Pic_0224 224
#define Pic_0225 225
#define Pic_0226 226
#define Pic_0227 227
#define Pic_0228 228
#define Pic_0229 229
#define Pic_0230 230
#define Pic_0231 231
#define Pic_0232 232
#define Pic_0233 233
#define Pic_0234 234
#define Pic_0235 235
#define Pic_0236 236
#define Pic_0237 237
#define Pic_0238 238
#define Pic_0239 239
#define Pic_0240 240
#define Pic_0241 241
#define Pic_0242 242
#define Pic_0243 243
#define Pic_0244 244
#define Pic_0245 245
#define Pic_0246 246
#define Pic_0247 247
#define Pic_0248 248
#define Pic_0249 249
#define Pic_0250 250
#define Pic_0251 251
#define Pic_0252 252
#define Pic_0253 253
#define Pic_0254 254
#define Pic_0255 255
#define Pic_0256 256
#define Pic_0257 257
#define Pic_0258 258
#define Pic_0259 259
#define Pic_0260 260
#define Pic_0261 261
#define Pic_0262 262
#define Pic_0263 263
#define Pic_0264 264
#define Pic_0265 265
#define Pic_0266 266
#define Pic_0267 267
#define Pic_0268 268
#define Pic_0269 269
#define Pic_0270 270
#define Pic_0271 271
#define Pic_0272 272
#define Pic_0273 273
#define Pic_0274 274
#define Pic_0275 275
#define Pic_0276 276
#define Pic_0277 277
#define Pic_0278 278
#define Pic_0279 279
#define Pic_0280 280
#define Pic_0281 281
#define Pic_0282 282
#define Pic_0283 283
#define Pic_0284 284
#define Pic_0285 285
#define Pic_0286 286
#define Pic_0287 287
#define Pic_0288 288
#define Pic_0289 289
#define Pic_0290 290
#define Pic_0291 291
#define Pic_0292 292
#define Pic_0293 293
#define Pic_0294 294
#define Pic_0295 295
#define Pic_0296 296
#define Pic_0297 297
#define Pic_0298 298
#define Pic_0299 299
#define Pic_0300 300
#define Pic_0301 301
#define Pic_0302 302
#define Pic_0303 303
#define Pic_0304 304
#define Pic_0305 305
#define Pic_0306 306
#define Pic_0307 307
#define Pic_0308 308
#define Pic_0309 309
#define Pic_0310 310
#define Pic_0311 311
#define Pic_0312 312
#define Pic_0313 313
#define Pic_0314 314
#define Pic_0315 315
#define Pic_0316 316
#define Pic_0317 317
#define Pic_0318 318
#define Pic_0319 319
#define Pic_0320 320
#define Pic_0321 321
#define Pic_0322 322
#define Pic_0323 323
#define Pic_0324 324
#define Pic_0325 325
#define Pic_0326 326
#define Pic_0327 327
#define Pic_0328 328
#define Pic_0329 329
#define Pic_0330 330
#define Pic_0331 331
#define Pic_0332 332
#define Pic_0333 333
#define Pic_0334 334
#define Pic_0335 335
#define Pic_0336 336
#define Pic_0337 337
#define Pic_0338 338
#define Pic_0339 339
#define Pic_0340 340
#define Pic_0341 341
#define Pic_0342 342
#define Pic_0343 343
#define Pic_0344 344
#define Pic_0345 345
#define Pic_0346 346
#define Pic_0347 347
#define Pic_0348 348
#define Pic_0349 349
#define Pic_0350 350
#define Pic_0351 351
#define Pic_0352 352
#define Pic_0353 353
#define Pic_0354 354
#define Pic_0355 355
#define Pic_0356 356
#define Pic_0357 357
#define Pic_0358 358
#define Pic_0359 359
#define Pic_0360 360
#define Pic_0361 361
#define Pic_0362 362
#define Pic_0363 363
#define Pic_0364 364
#define Pic_0365 365
#define Pic_0366 366
#define Pic_0367 367
#define Pic_0368 368
#define Pic_0369 369
#define Pic_0370 370
#define Pic_0371 371
#define Pic_0372 372
#define Pic_0373 373
#define Pic_0374 374
#define Pic_0375 375
#define Pic_0376 376
#define Pic_0377 377
#define Pic_0378 378
#define Pic_0379 379
#define Pic_0380 380
#define Pic_0381 381
#define Pic_0382 382
#define Pic_0383 383
#define Pic_0384 384
#define Pic_0385 385
#define Pic_0386 386
#define Pic_0387 387
#define Pic_0388 388
#define Pic_0389 389
#define Pic_0390 390
#define Pic_0391 391
#define Pic_0392 392
#define Pic_0393 393
#define Pic_0394 394
#define Pic_0395 395
#define Pic_0396 396
#define Pic_0397 397
#define Pic_0398 398
#define Pic_0399 399
#define Pic_0400 400
#define Pic_0401 401
#define Pic_0402 402
#define Pic_0403 403
#define Pic_0404 404
#define Pic_0405 405
#define Pic_0406 406
#define Pic_0407 407
#define Pic_0408 408
#define Pic_0409 409
#define Pic_0410 410
#define Pic_0411 411
#define Pic_0412 412
#define Pic_0413 413
#define Pic_0414 414
#define Pic_0415 415
#define Pic_0416 416
#define Pic_0417 417
#define Pic_0418 418
#define Pic_0419 419
#define Pic_0420 420
#define Pic_0421 421
#define Pic_0422 422
#define Pic_0423 423
#define Pic_0424 424
#define Pic_0425 425
#define Pic_0426 426
#define Pic_0427 427
#define Pic_0428 428
#define Pic_0429 429
#define Pic_0430 430
#define Pic_0431 431
#define Pic_0432 432
#define Pic_0433 433
#define Pic_0434 434
#define Pic_0435 435
#define Pic_0436 436
#define Pic_0437 437
#define Pic_0438 438
#define Pic_0439 439
#define Pic_0440 440
#define Pic_0441 441
#define Pic_0442 442
#define Pic_0443 443
#define Pic_0444 444
#define Pic_0445 445
#define Pic_0446 446
#define Pic_0447 447
#define Pic_0448 448
#define Pic_0449 449
#define Pic_0450 450
#define Pic_0451 451
#define Pic_0452 452
#define Pic_0453 453
#define Pic_0454 454
#define Pic_0455 455
#define Pic_0456 456
#define Pic_0457 457
#define Pic_0458 458
#define Pic_0459 459
#define Pic_0460 460
#define Pic_0461 461
#define Pic_0462 462
#define Pic_0463 463
#define Pic_0464 464
#define Pic_0465 465
#define Pic_0466 466
#define Pic_0467 467
#define Pic_0468 468
#define Pic_0469 469
#define Pic_0470 470
#define Pic_0471 471
#define Pic_0472 472
#define Pic_0473 473
#define Pic_0474 474
#define Pic_0475 475
#define Pic_0476 476
#define Pic_0477 477
#define Pic_0478 478
#define Pic_0479 479
#define Pic_0480 480
#define Pic_0481 481
#define Pic_0482 482
#define Pic_0483 483
#define Pic_0484 484
#define Pic_0485 485
#define Pic_0486 486
#define Pic_0487 487
#define Pic_0488 488
#define Pic_0489 489
#define Pic_0490 490
#define Pic_0491 491
#define Pic_0492 492
#define Pic_0493 493
#define Pic_0494 494
#define Pic_0495 495
#define Pic_0496 496
#define Pic_0497 497
#define Pic_0498 498
#define Pic_0499 499
#define Pic_0500 500
#define Pic_0501 501
#define Pic_0502 502
#define Pic_0503 503
#define Pic_0504 504
#define Pic_0505 505
#define Pic_0506 506
#define Pic_0507 507
#define Pic_0508 508
#define Pic_0509 509
#define Pic_0510 510
#define Pic_0511 511
#define Pic_0512 512
#define Pic_0513 513
#define Pic_0514 514
#define Pic_0515 515
#define Pic_0516 516
#define Pic_0517 517
#define Pic_0518 518
#define Pic_0519 519
#define Pic_0520 520
#define Pic_0521 521
#define Pic_0522 522
#define Pic_0523 523
#define Pic_0524 524
#define Pic_0525 525
#define Pic_0526 526
#define Pic_0527 527
#define Pic_0528 528
#define Pic_0529 529
#define Pic_0530 530
#define Pic_0531 531
#define Pic_0532 532
#define Pic_0533 533
#define Pic_0534 534
#define Pic_0535 535
#define Pic_0536 536
#define Pic_0537 537
#define Pic_0538 538
#define Pic_0539 539
#define Pic_0540 540
#define Pic_0541 541
#define Pic_0542 542
#define Pic_0543 543
#define Pic_0544 544
#define Pic_0545 545
#define Pic_0546 546
#define Pic_0547 547
#define Pic_0548 548
#define Pic_0549 549
#define Pic_0550 550
#define Pic_0551 551
#define Pic_0552 552
#define Pic_0553 553
#define Pic_0554 554
#define Pic_0555 555
#define Pic_0556 556
#define Pic_0557 557
#define Pic_0558 558
#define Pic_0559 559
#define Pic_0560 560
#define Pic_0561 561
#define Pic_0562 562
#define Pic_0563 563
#define Pic_0564 564
#define Pic_0565 565
#define Pic_0566 566
#define Pic_0567 567
#define Pic_0568 568
#define Pic_0569 569
#define Pic_0570 570
#define Pic_0571 571
#define Pic_0572 572
#define Pic_0573 573
#define Pic_0574 574
#define Pic_0575 575
#define Pic_0576 576
#define Pic_0577 577
#define Pic_0578 578
#define Pic_0579 579
#define Pic_0580 580
#define Pic_0581 581
#define Pic_0582 582
#define Pic_0583 583
#define Pic_0584 584
#define Pic_0585 585
#define Pic_0586 586
#define Pic_0587 587
#define Pic_0588 588
#define Pic_0589 589
#define Pic_0590 590
#define Pic_0591 591
#define Pic_0592 592
#define Pic_0593 593
#define Pic_0594 594
#define Pic_0595 595
#define Pic_0596 596
#define Pic_0597 597
#define Pic_0598 598
#define Pic_0599 599
#define Pic_0600 600
#define Pic_0601 601
#define Pic_0602 602
#define Pic_0603 603
#define Pic_0604 604
#define Pic_0605 605
#define Pic_0606 606
#define Pic_0607 607
#define Pic_0608 608
#define Pic_0609 609
#define Pic_0610 610
#define Pic_0611 611
#define Pic_0612 612
#define Pic_0613 613
#define Pic_0614 614
#define Pic_0615 615
#define Pic_0616 616
#define Pic_0617 617
#define Pic_0618 618
#define Pic_0619 619
#define Pic_0620 620
#define Pic_0621 621
#define Pic_0622 622
#define Pic_0623 623
#define Pic_0624 624
#define Pic_0625 625
#define Pic_0626 626
#define Pic_0627 627
#define Pic_0628 628
#define Pic_0629 629
#define Pic_0630 630
#define Pic_0631 631
#define Pic_0632 632
#define Pic_0633 633
#define Pic_0634 634
#define Pic_0635 635
#define Pic_0636 636
#define Pic_0637 637
#define Pic_0638 638
#define Pic_0639 639
#define Pic_0640 640
#define Pic_0641 641
#define Pic_0642 642
#define Pic_0643 643
#define Pic_0644 644
#define Pic_0645 645
#define Pic_0646 646
#define Pic_0647 647
#define Pic_0648 648
#define Pic_0649 649
#define Pic_0650 650
#define Pic_0651 651
#define Pic_0652 652
#define Pic_0653 653
#define Pic_0654 654
#define Pic_0655 655
#define Pic_0656 656
#define Pic_0657 657
#define Pic_0658 658
#define Pic_0659 659
#define Pic_0660 660
#define Pic_0661 661
#define Pic_0662 662
#define Pic_0663 663
#define Pic_0664 664
#define Pic_0665 665
#define Pic_0666 666
#define Pic_0667 667
#define Pic_0668 668
#define Pic_0669 669
#define Pic_0670 670
#define Pic_0671 671
#define Pic_0672 672
#define Pic_0673 673
#define Pic_0674 674
#define Pic_0675 675
#define Pic_0676 676
#define Pic_0677 677
#define Pic_0678 678
#define Pic_0679 679
#define Pic_0680 680
#define Pic_0681 681
#define Pic_0682 682
#define Pic_0683 683
#define Pic_0684 684
#define Pic_0685 685
#define Pic_0686 686
#define Pic_0687 687
#define Pic_0688 688
#define Pic_0689 689
#define Pic_0690 690
#define Pic_0691 691
#define Pic_0692 692
#define Pic_0693 693
#define Pic_0694 694
#define Pic_0695 695
#define Pic_0696 696
#define Pic_0697 697
#define Pic_0698 698
#define Pic_0699 699
#define Pic_0700 700
#define Pic_0701 701
#define Pic_0702 702
#define Pic_0703 703
#define Pic_0704 704
#define Pic_0705 705
#define Pic_0706 706
#define Pic_0707 707
#define Pic_0708 708
#define Pic_0709 709
#define Pic_0710 710
#define Pic_0711 711
#define Pic_0712 712
#define Pic_0713 713
#define Pic_0714 714
#define Pic_0715 715
#define Pic_0716 716
#define Pic_0717 717
#define Pic_0718 718
#define Pic_0719 719
#define Pic_0720 720
#define Pic_0721 721
#define Pic_0722 722
#define Pic_0723 723
#define Pic_0724 724
#define Pic_0725 725
#define Pic_0726 726
#define Pic_0727 727
#define Pic_0728 728
#define Pic_0729 729
#define Pic_0730 730
#define Pic_0731 731
#define Pic_0732 732
#define Pic_0733 733
#define Pic_0734 734
#define Pic_0735 735
#define Pic_0736 736
#define Pic_0737 737
#define Pic_0738 738
#define Pic_0739 739
#define Pic_0740 740
#define Pic_0741 741
#define Pic_0742 742
#define Pic_0743 743
#define Pic_0744 744
#define Pic_0745 745
#define Pic_0746 746
#define Pic_0747 747
#define Pic_0748 748
#define Pic_0749 749
#define Pic_0750 750
#define Pic_0751 751
#define Pic_0752 752
enum {
Pic_0001_0_0 = 0,
Pic_0002_0_0,
Pic_0003_23_397,
Pic_0004_336_140,
Pic_0005_304_155,
Pic_0006_14_397,
Pic_0007_475_289,
Pic_0008_474_152,
Pic_0009_321_261,
Pic_0010_448_274,
Pic_0011_490_168,
Pic_0012_22_397,
Pic_0004_336_261,
Pic_0013_437_274,
Pic_0014_481_170,
Pic_0004_336_141,
Pic_0015_469_289,
Pic_0016_457_155,
Pic_0017_19_397,
Pic_0018_441_335,
Pic_0019_478_341,
Pic_0020_408_209,
Pic_0020_455_209,
Pic_0020_525_209,
Pic_0020_572_209,
Pic_0021_510_222,
Pic_0022_550_211,
Pic_0023_564_211,
Pic_0024_550_211,
Pic_0025_552_211,
Pic_0026_548_211,
Pic_0027_550_211,
Pic_0028_551_211,
Pic_0029_549_211,
Pic_0030_550_211,
Pic_0031_551_211,
Pic_0032_567_253,
Pic_0033_555_232,
Pic_0022_409_211,
Pic_0022_457_211,
Pic_0022_527_211,
Pic_0022_574_211,
Pic_0034_14_397,
Pic_0035_336_324,
Pic_0019_478_348,
Pic_0036_336_266,
Pic_0037_376_289,
Pic_0038_590_287,
Pic_0039_583_287,
Pic_0040_598_289,
Pic_0040_612_289,
Pic_0040_605_289,
Pic_0041_606_290,
Pic_0042_604_289,
Pic_0043_604_289,
Pic_0044_604_290,
Pic_0045_604_290,
Pic_0046_605_289,
Pic_0047_605_290,
Pic_0048_605_289,
Pic_0049_605_289,
Pic_0050_609_305,
Pic_0051_607_300,
Pic_0004_336_205,
Pic_0052_574_226,
Pic_0053_573_226,
Pic_0054_377_227,
Pic_0055_570_165,
Pic_0056_377_166,
Pic_0057_52_398,
Pic_0058_360_138,
Pic_0059_509_353,
Pic_0060_504_307,
Pic_0061_505_264,
Pic_0062_503_219,
Pic_0063_495_145,
Pic_0058_360_183,
Pic_0064_493_190,
Pic_0065_504_136,
Pic_0058_360_229,
Pic_0066_496_236,
Pic_0062_503_186,
Pic_0058_360_274,
Pic_0067_495_281,
Pic_0068_505_236,
Pic_0058_360_325,
Pic_0069_506_332,
Pic_0060_504_286,
Pic_0058_360_332,
Pic_0070_466_342,
Pic_0059_509_286,
Pic_0060_504_236,
Pic_0068_505_186,
Pic_0062_503_136,
Pic_0071_18_397,
Pic_0004_336_90,
Pic_0072_454_360,
Pic_0073_456_257,
Pic_0074_422_103,
Pic_0004_336_332,
Pic_0075_409_345,
Pic_0073_456_232,
Pic_0076_461_118,
Pic_0004_336_221,
Pic_0077_414_234,
Pic_0078_18_397,
Pic_0079_895_397,
Pic_0080_188_486,
Pic_0081_714_486,
Pic_0082_481_519,
Pic_0083_23_399,
Pic_0084_869_397,
Pic_0085_188_486,
Pic_0086_762_487,
Pic_0087_435_519,
Pic_0088_47_398,
Pic_0089_193_488,
Pic_0090_435_519,
Pic_0091_567_356,
Pic_0092_368_356,
Pic_0093_574_292,
Pic_0094_375_292,
Pic_0095_633_240,
Pic_0096_338_228,
Pic_0095_633_175,
Pic_0097_334_163,
Pic_0098_14_398,
Pic_0099_895_397,
Pic_0100_218_487,
Pic_0101_728_486,
Pic_0102_441_521,
Pic_0103_22_397,
Pic_0104_895_397,
Pic_0105_184_487,
Pic_0106_733_488,
Pic_0107_476_519,
Pic_0108_19_397,
Pic_0109_899_399,
Pic_0110_192_486,
Pic_0111_758_487,
Pic_0112_429_519,
Pic_0113_14_397,
Pic_0114_924_398,
Pic_0115_189_486,
Pic_0116_724_487,
Pic_0117_440_519,
Pic_0118_52_398,
Pic_0119_891_398,
Pic_0120_174_486,
Pic_0121_732_486,
Pic_0122_436_519,
Pic_0123_18_397,
Pic_0124_898_397,
Pic_0086_222_487,
Pic_0125_729_486,
Pic_0126_415_519,
Pic_0127_27_396,
Pic_0128_429_152,
Pic_0129_28_396,
Pic_0130_27_396,
Pic_0131_435_272,
Pic_0132_474_168,
Pic_0133_473_288,
Pic_0134_436_152,
Pic_0135_27_396,
Pic_0136_489_338,
Pic_0137_26_396,
Pic_0136_489_345,
Pic_0138_590_287,
Pic_0139_369_287,
Pic_0140_584_226,
Pic_0141_584_226,
Pic_0142_367_226,
Pic_0143_367_163,
Pic_0144_37_396,
Pic_0145_477_340,
Pic_0146_27_396,
Pic_0147_476_359,
Pic_0148_472_256,
Pic_0149_448_101,
Pic_0150_448_343,
Pic_0148_472_231,
Pic_0151_476_117,
Pic_0152_434_232,
Pic_0153_27_396,
Pic_0154_903_396,
Pic_0155_197_485,
Pic_0156_737_485,
Pic_0157_461_517,
Pic_0158_27_396,
Pic_0159_903_396,
Pic_0160_197_485,
Pic_0161_747_485,
Pic_0162_445_517,
Pic_0163_27_396,
Pic_0164_913_396,
Pic_0165_197_485,
Pic_0155_737_485,
Pic_0166_445_517,
Pic_0167_341_354,
};
enum {
Pic_0168_350_290 = 200,
Pic_0169_353_227,
Pic_0170_354_162,
Pic_0171_28_396,
Pic_0172_903_396,
Pic_0173_197_485,
Pic_0160_737_485,
Pic_0174_445_517,
Pic_0175_27_396,
Pic_0176_903_396,
Pic_0177_198_485,
Pic_0165_737_485,
Pic_0178_445_517,
Pic_0179_27_396,
Pic_0180_903_396,
Pic_0181_197_485,
Pic_0173_737_485,
Pic_0182_446_517,
Pic_0183_26_396,
Pic_0184_903_396,
Pic_0185_197_485,
Pic_0177_738_485,
Pic_0186_445_517,
Pic_0187_37_396,
Pic_0188_904_396,
Pic_0156_197_485,
Pic_0181_737_485,
Pic_0189_446_517,
Pic_0190_27_396,
Pic_0191_903_396,
Pic_0161_207_485,
Pic_0185_737_485,
Pic_0192_445_517,
Pic_0193_0_0,
Pic_0194_23_397,
Pic_0195_304_155,
Pic_0196_14_397,
Pic_0197_448_274,
Pic_0198_490_168,
Pic_0199_475_289,
Pic_0200_474_152,
Pic_0201_22_397,
Pic_0202_437_274,
Pic_0203_481_170,
Pic_0204_469_289,
Pic_0205_457_155,
Pic_0206_19_397,
Pic_0207_437_316,
Pic_0208_478_341,
Pic_0209_510_222,
Pic_0210_550_211,
Pic_0211_564_211,
Pic_0212_550_211,
Pic_0213_552_211,
Pic_0214_548_211,
Pic_0215_550_211,
Pic_0216_551_211,
Pic_0217_549_211,
Pic_0218_550_211,
Pic_0219_551_211,
Pic_0220_567_253,
Pic_0221_555_232,
Pic_0210_409_211,
Pic_0210_457_211,
Pic_0210_527_211,
Pic_0210_574_211,
Pic_0222_14_397,
Pic_0208_478_348,
Pic_0223_590_287,
Pic_0224_583_287,
Pic_0225_598_289,
Pic_0225_612_289,
Pic_0225_605_289,
Pic_0226_606_290,
Pic_0227_604_289,
Pic_0228_604_289,
Pic_0229_604_290,
Pic_0230_604_290,
Pic_0231_605_289,
Pic_0232_605_290,
Pic_0233_605_289,
Pic_0234_605_289,
Pic_0235_609_305,
Pic_0236_607_300,
Pic_0237_376_289,
Pic_0238_574_226,
Pic_0239_573_226,
Pic_0240_377_227,
Pic_0241_570_165,
Pic_0242_377_166,
Pic_0243_52_398,
Pic_0244_360_103,
Pic_0245_509_353,
Pic_0246_504_307,
Pic_0247_505_264,
Pic_0248_503_219,
Pic_0249_495_145,
Pic_0244_360_148,
Pic_0250_493_190,
Pic_0251_504_136,
Pic_0244_360_194,
Pic_0252_496_236,
Pic_0248_503_186,
Pic_0244_360_239,
Pic_0253_495_281,
Pic_0254_505_236,
Pic_0244_360_290,
Pic_0255_506_332,
Pic_0246_504_286,
Pic_0244_360_297,
Pic_0256_466_342,
Pic_0245_509_286,
Pic_0246_504_236,
Pic_0254_505_186,
Pic_0248_503_136,
Pic_0257_18_397,
Pic_0258_454_360,
Pic_0259_456_257,
Pic_0260_422_103,
Pic_0261_409_345,
Pic_0259_456_232,
Pic_0262_461_118,
Pic_0263_414_234,
Pic_0264_18_397,
Pic_0265_895_397,
Pic_0266_188_486,
Pic_0267_714_486,
Pic_0268_481_519,
Pic_0269_23_399,
Pic_0270_869_397,
Pic_0271_188_486,
Pic_0272_762_487,
Pic_0273_435_519,
Pic_0274_47_398,
Pic_0275_916_398,
Pic_0276_193_488,
Pic_0277_728_486,
Pic_0278_435_519,
Pic_0279_567_356,
Pic_0280_368_356,
Pic_0281_574_292,
Pic_0282_375_292,
Pic_0283_633_240,
Pic_0284_338_228,
Pic_0283_633_175,
Pic_0285_334_163,
Pic_0286_14_398,
Pic_0287_895_397,
Pic_0288_218_487,
Pic_0289_728_486,
Pic_0290_441_521,
Pic_0291_22_397,
Pic_0292_895_397,
Pic_0293_184_487,
Pic_0294_733_488,
Pic_0295_476_519,
Pic_0296_19_397,
Pic_0297_899_399,
Pic_0298_192_486,
Pic_0299_758_487,
Pic_0300_429_519,
Pic_0301_14_397,
Pic_0302_924_398,
Pic_0303_189_486,
Pic_0304_724_487,
Pic_0305_440_519,
Pic_0306_52_398,
Pic_0307_891_398,
Pic_0308_174_486,
Pic_0309_732_486,
Pic_0310_436_519,
Pic_0311_18_397,
Pic_0312_898_397,
Pic_0272_222_487,
Pic_0313_729_486,
Pic_0314_415_519,
Pic_0315_27_396,
Pic_0316_429_152,
Pic_0317_28_396,
Pic_0318_27_396,
Pic_0319_435_272,
Pic_0320_474_168,
Pic_0321_473_288,
Pic_0322_436_152,
Pic_0323_27_396,
Pic_0324_489_338,
Pic_0325_26_396,
Pic_0324_489_345,
Pic_0326_369_287,
Pic_0327_584_226,
Pic_0328_584_226,
Pic_0329_367_226,
Pic_0330_367_163,
Pic_0331_37_396,
Pic_0332_477_340,
Pic_0333_27_396,
Pic_0334_476_359,
Pic_0335_472_256,
Pic_0336_448_101,
Pic_0337_448_343,
};
enum {
Pic_0335_472_231 = 400,
Pic_0338_476_117,
Pic_0339_434_232,
Pic_0340_27_396,
Pic_0341_903_396,
Pic_0342_197_485,
Pic_0343_737_485,
Pic_0344_461_517,
Pic_0345_27_396,
Pic_0346_903_396,
Pic_0347_197_485,
Pic_0348_747_485,
Pic_0349_445_517,
Pic_0350_27_396,
Pic_0351_913_396,
Pic_0352_197_485,
Pic_0342_737_485,
Pic_0353_445_517,
Pic_0354_341_354,
Pic_0355_350_290,
Pic_0356_353_227,
Pic_0357_354_162,
Pic_0358_28_396,
Pic_0359_903_396,
Pic_0360_197_485,
Pic_0347_737_485,
Pic_0361_445_517,
Pic_0362_27_396,
Pic_0363_903_396,
Pic_0364_198_485,
Pic_0352_737_485,
Pic_0365_445_517,
Pic_0366_27_396,
Pic_0367_903_396,
Pic_0368_197_485,
Pic_0360_737_485,
Pic_0369_446_517,
Pic_0370_26_396,
Pic_0371_903_396,
Pic_0372_197_485,
Pic_0364_738_485,
Pic_0373_445_517,
Pic_0374_37_396,
Pic_0375_904_396,
Pic_0343_197_485,
Pic_0368_737_485,
Pic_0376_446_517,
Pic_0377_27_396,
Pic_0378_903_396,
Pic_0348_207_485,
Pic_0372_737_485,
Pic_0379_445_517,
Pic_0380_396_528,
Pic_0381_615_528,
Pic_0382_0_0,
Pic_0383_0_470,
Pic_0384_103_570,
Pic_0385_63_554,
Pic_0385_33_554,
Pic_0386_73_554,
Pic_0387_64_554,
Pic_0388_65_554,
Pic_0389_62_554,
Pic_0390_64_554,
Pic_0391_64_554,
Pic_0392_63_554,
Pic_0393_63_554,
Pic_0394_64_554,
Pic_0395_75_582,
Pic_0396_67_568,
Pic_0385_250_553,
Pic_0385_280_553,
Pic_0397_315_562,
Pic_0385_327_553,
Pic_0385_357_553,
Pic_0386_367_553,
Pic_0387_358_553,
Pic_0388_359_553,
Pic_0389_356_553,
Pic_0390_358_553,
Pic_0391_358_553,
Pic_0392_357_553,
Pic_0393_357_553,
Pic_0394_358_553,
Pic_0395_369_581,
Pic_0396_361_567,
Pic_0398_632_551,
Pic_0399_424_510,
Pic_0399_484_510,
Pic_0399_544_510,
Pic_0399_454_510,
Pic_0399_514_510,
Pic_0400_502_509,
Pic_0401_485_509,
Pic_0402_486_509,
Pic_0403_481_509,
Pic_0404_485_509,
Pic_0405_485_509,
Pic_0406_483_509,
Pic_0407_484_509,
Pic_0408_485_509,
Pic_0409_506_563,
Pic_0410_491_536,
Pic_0411_56_533,
Pic_0412_314_533,
Pic_0413_74_533,
Pic_0414_76_536,
Pic_0415_76_536,
Pic_0416_105_536,
Pic_0417_134_536,
Pic_0418_163_536,
Pic_0419_192_536,
Pic_0420_221_536,
Pic_0421_250_536,
Pic_0422_279_536,
Pic_0423_26_529,
Pic_0424_26_529,
Pic_0425_709_533,
Pic_0426_967_533,
Pic_0413_727_533,
Pic_0414_729_536,
Pic_0427_729_536,
Pic_0428_758_536,
Pic_0429_787_536,
Pic_0430_816_536,
Pic_0431_845_536,
Pic_0432_874_536,
Pic_0433_903_536,
Pic_0434_932_536,
Pic_0435_981_528,
Pic_0436_981_528,
Pic_0437_786_561,
Pic_0438_847_561,
Pic_0439_848_561,
Pic_0440_847_561,
Pic_0441_847_561,
Pic_0442_847_561,
Pic_0443_847_561,
Pic_0444_847_561,
Pic_0445_847_561,
Pic_0446_847_561,
Pic_0447_847_561,
Pic_0448_851_575,
Pic_0449_849_571,
Pic_0450_751_555,
Pic_0451_751_555,
Pic_0452_717_516,
Pic_0453_683_516,
Pic_0453_693_516,
Pic_0454_704_526,
Pic_0453_707_516,
Pic_0452_712_516,
Pic_0453_688_516,
Pic_0454_699_526,
Pic_0453_702_516,
Pic_0455_692_516,
Pic_0456_689_516,
Pic_0457_689_516,
Pic_0458_688_516,
Pic_0459_689_516,
Pic_0460_689_516,
Pic_0461_688_516,
Pic_0462_688_516,
Pic_0463_689_516,
Pic_0454_692_526,
Pic_0464_690_521,
Pic_0465_881_487,
Pic_0466_874_488,
Pic_0467_952_481,
Pic_0468_819_486,
Pic_0469_749_487,
Pic_0470_687_486,
Pic_0471_312_486,
Pic_0472_251_485,
Pic_0473_172_490,
Pic_0474_101_487,
Pic_0475_30_481,
Pic_0476_0_0,
Pic_0477_178_130,
Pic_0478_188_310,
Pic_0479_242_313,
Pic_0480_255_326,
Pic_0479_260_313,
Pic_0480_272_326,
Pic_0479_277_313,
Pic_0480_289_326,
Pic_0479_294_313,
Pic_0479_253_313,
Pic_0480_266_326,
Pic_0479_271_313,
Pic_0479_282_313,
Pic_0480_295_326,
Pic_0479_300_313,
Pic_0479_311_313,
Pic_0480_324_326,
Pic_0479_329_313,
Pic_0479_340_313,
Pic_0481_295_313,
Pic_0482_294_313,
Pic_0483_294_313,
};
enum {
Pic_0484_294_313 = 600,
Pic_0485_294_313,
Pic_0486_295_313,
Pic_0487_295_313,
Pic_0488_294_313,
Pic_0489_294_313,
Pic_0480_298_326,
Pic_0490_296_322,
Pic_0491_188_343,
Pic_0492_243_344,
Pic_0493_242_344,
Pic_0494_410_144,
Pic_0495_655_197,
Pic_0496_410_197,
Pic_0497_486_251,
Pic_0498_411_252,
Pic_0499_32_15,
Pic_0500_66_16,
Pic_0501_67_15,
Pic_0502_66_16,
Pic_0503_508_22,
Pic_0504_485_17,
Pic_0504_497_17,
Pic_0504_513_17,
Pic_0504_525_17,
Pic_0505_525_17,
Pic_0506_524_17,
Pic_0507_524_17,
Pic_0508_524_17,
Pic_0509_524_17,
Pic_0510_525_17,
Pic_0511_525_17,
Pic_0512_524_17,
Pic_0513_524_17,
Pic_0514_528_30,
Pic_0515_527_26,
Pic_0516_955_14,
Pic_0517_958_18,
Pic_0518_0_0,
Pic_0519_648_5,
Pic_0520_760_50,
Pic_0521_0_0,
Pic_0522_916_503,
Pic_0523_868_491,
Pic_0523_891_491,
Pic_0523_927_491,
Pic_0523_950_491,
Pic_0524_957_491,
Pic_0525_951_491,
Pic_0526_952_491,
Pic_0527_950_491,
Pic_0528_951_491,
Pic_0529_951_491,
Pic_0530_950_491,
Pic_0531_951_491,
Pic_0532_951_491,
Pic_0533_959_511,
Pic_0534_953_501,
Pic_0535_53_463,
Pic_0536_54_499,
Pic_0536_68_499,
Pic_0536_82_499,
Pic_0536_96_499,
Pic_0536_110_499,
Pic_0536_124_499,
Pic_0536_138_499,
Pic_0536_152_499,
Pic_0536_166_499,
Pic_0536_180_499,
Pic_0536_194_499,
Pic_0537_55_499,
Pic_0538_54_499,
Pic_0539_54_499,
Pic_0540_54_499,
Pic_0541_54_499,
Pic_0542_55_499,
Pic_0543_54_499,
Pic_0544_54_499,
Pic_0545_54_499,
Pic_0546_58_514,
Pic_0547_57_510,
Pic_0548_62_401,
Pic_0549_299_533,
Pic_0550_715_533,
Pic_0551_503_529,
Pic_0552_503_529,
Pic_0553_315_473,
Pic_0554_315_473,
Pic_0555_366_473,
Pic_0556_426_473,
Pic_0557_469_473,
Pic_0558_514_473,
Pic_0559_550_473,
Pic_0560_586_473,
Pic_0561_623_473,
Pic_0562_315_473,
Pic_0563_923_407,
Pic_0564_966_451,
Pic_0565_915_451,
Pic_0565_930_451,
Pic_0565_951_451,
Pic_0566_946_465,
Pic_0564_958_451,
Pic_0565_922_451,
Pic_0565_943_451,
Pic_0566_938_465,
Pic_0567_948_451,
Pic_0568_944_451,
Pic_0569_944_451,
Pic_0570_943_451,
Pic_0571_943_451,
Pic_0572_944_451,
Pic_0573_943_451,
Pic_0574_943_451,
Pic_0575_944_451,
Pic_0566_949_465,
Pic_0576_945_458,
Pic_0577_48_272,
Pic_0578_55_296,
Pic_0579_53_328,
Pic_0579_77_328,
Pic_0579_101_328,
Pic_0579_125_328,
Pic_0579_149_328,
Pic_0579_173_328,
Pic_0580_211_324,
Pic_0580_187_324,
Pic_0580_163_324,
Pic_0580_139_324,
Pic_0580_115_324,
Pic_0580_91_324,
Pic_0581_61_327,
Pic_0582_54_327,
Pic_0583_54_327,
Pic_0584_52_327,
Pic_0585_54_327,
Pic_0586_54_327,
Pic_0587_53_327,
Pic_0588_53_327,
Pic_0589_54_327,
Pic_0590_62_349,
Pic_0591_56_338,
Pic_0592_617_271,
Pic_0593_889_310,
Pic_0594_338_256,
Pic_0594_456_256,
Pic_0594_574_256,
Pic_0594_397_256,
Pic_0594_515_256,
Pic_0595_492_255,
Pic_0596_458_255,
Pic_0597_461_255,
Pic_0598_451_255,
Pic_0599_458_255,
Pic_0600_459_255,
Pic_0601_454_255,
Pic_0602_456_255,
Pic_0603_459_255,
Pic_0604_500_361,
Pic_0605_470_308,
Pic_0606_834_199,
Pic_0607_94_110,
Pic_0608_782_125,
Pic_0609_731_111,
Pic_0610_677_110,
Pic_0611_623_119,
Pic_0612_569_149,
Pic_0613_511_149,
Pic_0614_446_149,
Pic_0615_381_149,
Pic_0616_291_128,
Pic_0617_193_110,
Pic_0618_140_111,
Pic_0619_94_123,
Pic_0620_56_165,
Pic_0621_118_95,
Pic_0622_178_81,
Pic_0623_268_89,
Pic_0624_350_114,
Pic_0625_422_114,
Pic_0626_498_114,
Pic_0627_570_114,
Pic_0628_634_114,
Pic_0629_721_86,
Pic_0630_803_81,
Pic_0631_877_95,
Pic_0632_925_165,
Pic_0633_0_0,
Pic_0634_916_503,
Pic_0635_868_491,
Pic_0635_891_491,
Pic_0635_927_491,
Pic_0635_950_491,
Pic_0636_957_491,
Pic_0637_951_491,
Pic_0638_952_491,
Pic_0639_950_491,
Pic_0640_951_491,
Pic_0641_951_491,
Pic_0642_950_491,
};
enum {
Pic_0643_951_491 = 800,
Pic_0644_951_491,
Pic_0645_959_511,
Pic_0646_953_501,
Pic_0647_53_463,
Pic_0648_54_499,
Pic_0648_68_499,
Pic_0648_82_499,
Pic_0648_96_499,
Pic_0648_110_499,
Pic_0648_124_499,
Pic_0648_138_499,
Pic_0648_152_499,
Pic_0648_166_499,
Pic_0648_180_499,
Pic_0648_194_499,
Pic_0649_55_499,
Pic_0650_54_499,
Pic_0651_54_499,
Pic_0652_54_499,
Pic_0653_54_499,
Pic_0654_55_499,
Pic_0655_54_499,
Pic_0656_54_499,
Pic_0657_54_499,
Pic_0658_58_514,
Pic_0659_57_510,
Pic_0660_715_533,
Pic_0661_503_529,
Pic_0662_315_473,
Pic_0663_315_473,
Pic_0664_366_473,
Pic_0665_426_473,
Pic_0666_469_473,
Pic_0667_514_473,
Pic_0668_550_473,
Pic_0669_586_473,
Pic_0670_623_473,
Pic_0671_315_473,
Pic_0672_966_451,
Pic_0673_915_451,
Pic_0673_930_451,
Pic_0673_951_451,
Pic_0674_946_465,
Pic_0672_958_451,
Pic_0673_922_451,
Pic_0673_943_451,
Pic_0674_938_465,
Pic_0675_948_451,
Pic_0676_944_451,
Pic_0677_944_451,
Pic_0678_943_451,
Pic_0679_943_451,
Pic_0680_944_451,
Pic_0681_943_451,
Pic_0682_943_451,
Pic_0683_944_451,
Pic_0674_949_465,
Pic_0684_945_458,
Pic_0685_48_272,
Pic_0686_55_296,
Pic_0687_53_328,
Pic_0687_77_328,
Pic_0687_101_328,
Pic_0687_125_328,
Pic_0687_149_328,
Pic_0687_173_328,
Pic_0688_211_324,
Pic_0688_187_324,
Pic_0688_163_324,
Pic_0688_139_324,
Pic_0688_115_324,
Pic_0688_91_324,
Pic_0689_61_327,
Pic_0690_54_327,
Pic_0691_54_327,
Pic_0692_52_327,
Pic_0693_54_327,
Pic_0694_54_327,
Pic_0695_53_327,
Pic_0696_53_327,
Pic_0697_54_327,
Pic_0698_62_349,
Pic_0699_56_338,
Pic_0700_617_271,
Pic_0701_889_310,
Pic_0702_338_256,
Pic_0702_456_256,
Pic_0702_574_256,
Pic_0702_397_256,
Pic_0702_515_256,
Pic_0703_492_255,
Pic_0704_458_255,
Pic_0705_461_255,
Pic_0706_451_255,
Pic_0707_458_255,
Pic_0708_459_255,
Pic_0709_454_255,
Pic_0710_456_255,
Pic_0711_459_255,
Pic_0712_500_361,
Pic_0713_470_308,
Pic_0714_834_199,
Pic_0715_94_110,
Pic_0716_782_125,
Pic_0717_731_111,
Pic_0718_677_110,
Pic_0719_623_119,
Pic_0720_570_149,
Pic_0721_511_149,
Pic_0722_94_114,
Pic_0723_379_149,
Pic_0724_292_128,
Pic_0725_191_110,
Pic_0726_138_111,
Pic_0727_94_123,
Pic_0728_56_165,
Pic_0729_118_95,
Pic_0730_178_81,
Pic_0731_268_89,
Pic_0732_350_114,
Pic_0733_422_114,
Pic_0734_498_114,
Pic_0735_570_114,
Pic_0736_941_13,
Pic_0737_875_23,
Pic_0738_792_25,
Pic_0739_731_19,
Pic_0740_682_21,
Pic_0741_616_20,
Pic_0742_544_22,
Pic_0743_476_20,
Pic_0744_402_21,
Pic_0745_341_21,
Pic_0746_233_26,
Pic_0747_244_26,
Pic_0748_194_26,
Pic_0749_192_26,
Pic_0750_106_26,
Pic_0751_111_30,
Pic_0752_28_13,
};
#define PIC_INDEX_DATA_CRC 0xB1B4E2C2
extern void User_PicIndexDataInit(void);
#endif
#ifndef UART_PROTOCOL_H
#define UART_PROTOCOL_H
#include <stdint.h>
typedef unsigned int uint32_t;
typedef int int32_t;
typedef unsigned short uint16_t;
typedef short int16_t;
typedef unsigned char uint8_t;
#define UART_UPDATE_ACK_NONE 0
#define UART_UPDATE_ACK_OK 1
#define UART_UPDATE_ACK_WAIT 2
#define UART_UPDATE_ACK_FAIL 3
#define UART_UPDATE_ACK_TIMEOUT 4
#define GROUP_PIC_DIR_LEFT 0x80
#define GROUP_PIC_DIR_RIGHT 0x00
#define GROUP_PIC_USE_PSD_Y_POS -1
typedef enum {
ALIVE_COUNTER_COMM,
ALIVE_COUNTER_LCD0,
ALIVE_COUNTER_LCD1,
ALIVE_COUNTER_TOTAL,
}ALIVE_COUNTER_TYPE;
/* Generate Function */
extern void ResetInitedState(void); /* Called every time the AMT630 is powered on or the MCU wake up */
extern uint8_t GetAliveCounter(ALIVE_COUNTER_TYPE n); /* 0:ALIVE_COUNTER_COMM, 1:ALIVE_COUNTER_LCD0, 2:ALIVE_COUNTER_LCD1 */
extern uint32_t GetCrcErrCnts(void);
extern uint32_t GetRecvLenErrCnts(void);
extern uint8_t GetLcdInitSt(void);
extern uint8_t GetCameraSignalSt(void);
extern uint8_t GetVideoCaptureSt(void);
extern uint8_t GetAmt630InBoot(void);
extern uint8_t *GetUartRecvData(uint32_t *UartRecvBufLen, uint32_t *UartRecvPos);
extern void UartSendData(uint8_t *data, uint32_t len);
extern void AnalysisUartData(void);
/* Generate Function end */
/* Sound */
#define SOUND_STATE_FREE 0
#define SOUND_STATE_BUSY 1
#define WAV_TEST_NUM_TIC 0xfd
#define WAV_TEST_NUM_TOC 0xfe
enum {
AUDIO_FREQ_NONE,
AUDIO_FREQ_8K,
AUDIO_FREQ_11K,
AUDIO_FREQ_16K,
AUDIO_FREQ_22K,
AUDIO_FREQ_32K,
AUDIO_FREQ_44K,
AUDIO_FREQ_48K,
AUDIO_FREQ_96K,
AUDIO_FREQ_128K,
AUDIO_FREQ_160K,
AUDIO_FREQ_172K,
AUDIO_FREQ_192K,
AUDIO_FREQ_TOTAL,
};
extern void PackedTransfer_SoundPlay(uint8_t Channel, uint8_t WavNum, uint16_t PlayTimes, uint16_t MinTimes, uint8_t Volume);
extern void PackedTransfer_SoundStop(uint8_t Channel);
extern void PackedTransfer_SoundChangeVolume(uint8_t Channel, uint8_t Volume);
extern uint8_t GetSoundChannelSta(uint8_t Channel);
/* Sound end */
/* Lcd Parameter */
#define LCD_WIRING_MODE_RGB 0
#define LCD_WIRING_MODE_RBG 1
#define LCD_WIRING_MODE_GRB 2
#define LCD_WIRING_MODE_GBR 3
#define LCD_WIRING_MODE_BRG 4
#define LCD_WIRING_MODE_BGR 5
#define LCD_INTERFACE_TTL 0
#define LCD_INTERFACE_LVDS 1
#define LCD_WIRING_BIT_ORDER_MSB 0
#define LCD_WIRING_BIT_ORDER_LSB 1
#define LVDS_PANEL_FORMAT_TI 0
#define LVDS_PANEL_FORMAT_NS 1
#define LVDS_PANEL_DATA_8BIT 0
#define LVDS_PANEL_DATA_6BIT 1
#define VIDEO_IN_NONE 0
#define VIDEO_IN_NTSC 1
#define VIDEO_IN_PAL 2
typedef struct {
uint16_t LcdWidth;
uint16_t LcdHeight;
uint8_t LcdVideoInputValid : 2;
uint8_t LcdBpp : 6;
uint8_t Ark7116ResetPin;
uint8_t LcdInterfaceType : 4;
uint8_t LcdWiringMode : 4;
uint8_t LcdWiringBitOrder : 2;
uint8_t LcdDotClkReverse : 2;
uint8_t LvdsPanelFormat : 2;
uint8_t LvdsPanelData : 2;
uint16_t LcdTimingVBP;
uint16_t LcdTimingVFP;
uint16_t LcdTimingVSW;
uint16_t LcdTimingHBP;
uint16_t LcdTimingHFP;
uint16_t LcdTimingHSW;
uint32_t LcdClkFreq;
uint8_t SoundFreq;
uint8_t SoundChannelNum;
} LCD_TFT_SOUND_PARA_ST;
extern void SetLcdSoundParameter(LCD_TFT_SOUND_PARA_ST *pData);
/* Lcd Parameter end */
/* Amt Software */
typedef struct {
uint8_t AmtLdrVer[8];
uint8_t StepLdrVer[8];
uint8_t AmtAppVer[8];
uint8_t UiVer[8];
uint8_t SoundVer[8];
uint8_t FontVer[8];
} SOFTWARE_VERSION_ST;
extern void SetSwVerBuf(uint8_t *buf);
extern void PackedTransfer_GetSwVer(void);
/* Amt Software end */
/* Pic Index */
extern void SetPicIndexData(uint8_t *data, uint32_t len, uint32_t crc);
/* Pic Index end */
/* Sequence Frame */
#define SE_FRAME_PIC_MAX 100
enum {
SE_TYPE_NONE,
SE_TYPE_ONE_SHOT,
SE_TYPE_CONTINUOUS,
};
typedef struct {
uint16_t Pic;
} SEQUENCE_FRAME_PIC_ST;
typedef struct {
uint8_t SeFrameType;
uint8_t SeFrameNumTotal;
uint16_t SeFrameTotalTime;
uint16_t SeFrameValidTime;
SEQUENCE_FRAME_PIC_ST SeFramePicList[SE_FRAME_PIC_MAX];
} SEQUENCE_FRAME_ST;
extern SEQUENCE_FRAME_ST SeFrameData;
extern void PackedTransfer_SequenceFrame(uint8_t *SeData, uint16_t SeLen);
extern void PackedTransfer_SequenceFrameOff(void);
/* Sequence Frame end */
/* Pointer Move Type */
typedef enum {
POINTER_TYPE_SPEED,
POINTER_TYPE_ENGINE,
POINTER_TYPE_COOLANT_FUEL,
POINTER_TYPE_CUSTOMIZE,
POINTER_TYPE_MAX,
} POINTER_MOVE_TYPE_ENUM;
typedef enum {
POINTER_RENDER_TYPE_POINTER,
POINTER_RENDER_TYPE_SEQUENCE_PIC,
} POINTER_RENDER_TYPE_ENUM;
typedef struct {
uint32_t PointerAngleP; /* 10:0.1, 15:0.15, 100:1 .... POINTER_TYPE_SPEED default:30 */
uint32_t PointerAngleD; /* 10:0.1, 15:0.15, 100:1 .... POINTER_TYPE_SPEED default:18 */
uint32_t PointerAngleSlowP; /* 10:0.1, 15:0.15, 100:1 .... POINTER_TYPE_SPEED default:10 */
uint32_t PointerAngleSlowD; /* 10:0.1, 15:0.15, 100:1 .... POINTER_TYPE_SPEED default:18 */
uint32_t MaxInterval; /* 10:0.1, 15:0.15, 100:1 .... POINTER_TYPE_SPEED default:340 */
} POINTER_MOVE_PARA;
extern void PackedTransfer_SetPointerMoveType(POINTER_MOVE_PARA *Data, POINTER_MOVE_TYPE_ENUM MoveType);
/* Pointer Move Type end */
/* Pointer */
typedef enum {
POINTER_0,
POINTER_1,
POINTER_2,
POINTER_3,
POINTER_MAX,
} POINTER_ENUM;
extern void PackedTransfer_InitPointer(POINTER_ENUM PointerN, uint8_t *data, uint16_t len, POINTER_MOVE_TYPE_ENUM MoveType, POINTER_RENDER_TYPE_ENUM RenderType);
extern uint8_t GetPointerInitSt(POINTER_ENUM PointerN);
extern void PackedTransfer_SetPointerDestVal(POINTER_ENUM PointerN, uint16_t DestVal, uint8_t NoDamping); /* DestVal:0~1000, NoDamping: 0-have damping, 1:no damping */
extern uint16_t GetPointerCurVal(POINTER_ENUM PointerN); /* CurVal:0~1000 */
#define POINTER_NUM_LIST_MAX 20
extern void SetPointerNumPic(POINTER_ENUM PointerN, uint8_t n, uint16_t PicIndex, uint16_t PointerVal);
extern void SetPointerNumZoomPara(POINTER_ENUM PointerN, uint16_t ZoomRange, float ZoomMax);
extern void PackedTransfer_PointerNumData(POINTER_ENUM PointerN);
/* Pointer end */
/* Page Data */
typedef enum {
GRAPHICS_PAGE_0,
GRAPHICS_PAGE_1,
GRAPHICS_PAGE_2,
GRAPHICS_PAGE_MAX,
} GRAPHICS_PAGE_ENUM;
typedef enum {
SWITCH_EFFECT_NONE,
SWITCH_EFFECT_ONLY_ALPHA,
SWITCH_EFFECT_ONLY_OFFSET,
SWITCH_EFFECT_ALPHA_OFFSET,
} EFFECT_VALID_ENUM;
typedef enum {
SWITCH_EFFECT_OFFSET_FADE_IN_RIGHT_TO_LEFT,
SWITCH_EFFECT_OFFSET_FADE_IN_LEFT_TO_RIGHT,
SWITCH_EFFECT_OFFSET_FADE_IN_UP_TO_DOWN,
SWITCH_EFFECT_OFFSET_FADE_IN_DOWN_TO_UP,
} OFFSET_EFFECT_ENUM;
typedef enum {
ALIGN_LEFT,
ALIGN_CENTER,
ALIGN_RIGHT,
} TEXT_ALIGN_TYPE;
typedef enum {
TFT_ROT_0,
TFT_ROT_90,
TFT_ROT_180,
TFT_ROT_270,
} TFT_ROT_TYPE;
#define TEXT_ROT_SCALE (r, s) ((((r) & 0xffff) << 16) | ((s) & 0xffff))
#define TEXT_COLOR(r, g, b, a) ((((r) & 0xff) << 24) | (((g) & 0xff) << 16) | (((b) & 0xff) << 8) | ((a) & 0xff)
#define TEXT_LINE_OFFSET(x, y) ((((x) & 0xffff) << 16) | ((y) & 0xffff))
#define GROUP_ALIGN_LEFT 0x0
#define GROUP_ALIGN_CENTER 0x40
extern void SetPageGuid(GRAPHICS_PAGE_ENUM page, uint8_t h, uint8_t m, uint8_t l);
extern void SetPageBackground(GRAPHICS_PAGE_ENUM page, uint16_t PicIndex);
extern void SetPagePic(GRAPHICS_PAGE_ENUM page, uint16_t PicIndex);
extern void SetPagePicPointerNum(GRAPHICS_PAGE_ENUM page, POINTER_ENUM PointN, uint16_t PicIndex);
extern void SetPagePicFree(GRAPHICS_PAGE_ENUM page, uint16_t PicIndex, int16_t PosX, int16_t PosY);
extern void SetPagePicFreeAppend(GRAPHICS_PAGE_ENUM page, uint16_t pic, int16_t PosX, int16_t PosY);
extern void SetPagePicGroup(GRAPHICS_PAGE_ENUM page, int16_t Interval, int16_t PosX, int16_t PosY, uint16_t *PicList, uint32_t Align_Num, uint16_t Dot_Itv, TFT_ROT_TYPE TftRot);
extern void SetPageText(GRAPHICS_PAGE_ENUM page, uint16_t LabelNum, int16_t PosX, int16_t PosY, int16_t MaxX, TEXT_ALIGN_TYPE AlginType, uint32_t RotScale, uint32_t Color, uint32_t LineOffset); /* TEXT_ROT_SCALE:use TEXT_ROT_SCALE macro, (r:0~3600); (s:-1000 ~ 1000, 0:no scale, 1 ~ 1000:zoom in, -1 ~ -1000:zoom out); Color:use TEXT_COLOR macro; LineOffset:use TEXT_LINE_OFFSET macro */
extern void SetPagePointerPic(GRAPHICS_PAGE_ENUM page, POINTER_ENUM PointN, uint16_t PicIndex);
extern void SetPagePointerSePic(GRAPHICS_PAGE_ENUM page, POINTER_ENUM PointN);
extern void SetPagePointerTrackPic(GRAPHICS_PAGE_ENUM page, POINTER_ENUM PointN, uint16_t PicIndex);
extern void PackedTransfer_BgJpg(uint32_t PicIndex);
extern void PackedTransfer_Page(void);
extern void PackedTransfer_PageEffect(GRAPHICS_PAGE_ENUM page, EFFECT_VALID_ENUM EffectValid, OFFSET_EFFECT_ENUM OffsetEffect);
extern void PackedTransfer_ClearPageData(GRAPHICS_PAGE_ENUM page);
/* Page Data end */
/* Compose Pic */
extern void PackedTransfer_ComposeData(uint8_t *data, uint8_t len);
/* Compose Pic end */
/* Label List */
extern uint8_t GetLanguageInitSt(void);
extern void PackedTransfer_InitLanguageFont(uint8_t Language, uint8_t Font);
extern void PackedTransfer_LabelsList(uint16_t LabelNum, uint8_t *LabelBuf, uint32_t LabelLen);
/* Label List end */
/* Flash Check */
typedef enum {
DISPLAY_CHECKING,
DISPLAY_CHECK_PASS,
DISPLAY_CHECK_FAIL,
}FLASH_CHECK_FORCE_DISPLAY_TYPE;
extern void PackedTransfer_CheckFlash(void);
extern uint8_t PackedTransfer_CheckFlashGetResult(void); /*return value 0xff:checking, 0:fail, 1:success */
extern void PackedTransfer_CheckFlashForceDisplay(FLASH_CHECK_FORCE_DISPLAY_TYPE type, uint16_t timerMs);
/* Flash Check end */
/* Video Input */
extern void PackedTransfer_VedioInputOn(uint32_t PosX, uint32_t PosY, uint32_t Wdith, uint32_t Height, uint32_t CutX, uint32_t CutY);
extern void PackedTransfer_VedioInputOff(void);
/* Video Input end */
/* Get Mcu or Backup Data */
typedef enum {
REQ_DATA,
GET_STATUS,
GET_APP_DATA_OFFSET,
GET_BACKUP_DATA_OFFSET,
GET_BACKUP_DATA_CRC,
WRITE_BACKUP_DATA,
} READ_ARK630_CMD;
typedef enum {
RECV_TYPE_DATA,
RECV_TYPE_OFFSET_LEN,
RECV_TYPE_WRITE_BACKUP_RESP,
RECV_TYPE_BACKUP_CRC,
}RECV_MCU_DATA_TYPE;
extern void GetDataBuf(uint32_t *pAddr, uint32_t *pLen);
extern void SetRecvDataSt(RECV_MCU_DATA_TYPE type, uint32_t addr, uint32_t len, uint32_t crc);
extern void PackedTransfer_GetMcuData(uint32_t addr, uint16_t len);
extern void PackedTransfer_GetDataOffsetLen(uint8_t type);
extern void PackedTransfer_GetBackupDataCrc(uint32_t addr, uint32_t len);
extern void PackedTransfer_WriteBackupData(uint32_t addr, uint8_t *data, uint16_t len);
/* Get Mcu or Backup Data end */
/* Set tft io mode */
extern void PackedTransfer_SetTftIoMode(uint8_t st); /*st 0:normal gpio, 1:TFT io*/
/* Set tft io mode end */
enum {NUM_0, NUM_1, NUM_2, NUM_3, NUM_4, NUM_5, NUM_6, NUM_7, NUM_8, NUM_9, NUM_POINT, NUM_LINE};
typedef struct {
const uint16_t *NumList;
int16_t NumInterval;
int16_t x;
int16_t y;
uint8_t DecimalNum;
uint8_t MinDigits;
} DISPLAY_NUM_ST;
extern void DisplayNum(uint8_t page, DISPLAY_NUM_ST *pNumData, int32_t NumVal);
/*
note:
Update630HBegin UDS 34 Seriver call and power on 630H and lcd by your self
Update630HWrite UDS 36 Seriver call
Update630HEnd UDS 37 Seriver call
return 0 is wait, return 1 is success, return 2 is fail.
*/
extern uint8_t Update630HBegin(uint32_t TimerCnts);
extern uint8_t Update630HWrite(uint32_t TimerCnts, uint8_t *data, uint32_t len);
extern uint8_t Update630HEnd(uint32_t TimerCnts);
#endif
...@@ -17,10 +17,15 @@ ...@@ -17,10 +17,15 @@
#include "GenDelay\GenDelay.h" #include "GenDelay\GenDelay.h"
#include "GpioUser.h" #include "GpioUser.h"
#include "Eeprom\eepromManage.h" #include "Eeprom\eepromManage.h"
#include "CommonInterface.h" #include "Application\CommonInterface.h"
#include "Menu\Menu.h" #include "Menu\Menu.h"
#include "Flash_synchronizer\Flash_synchronizer.h" #include "Flash_synchronizer\Flash_synchronizer.h"
#include "AMT630H\AMT630H.h"
#include "AMT630H\PicBin.h"
#include "AMT630H\UartProtocol.h"
#include "AMT630H\AMT630H_Datas.h"
#include "Data_ESpeed.h"
#include "Data_VSpeed.h"
#include "BackLight.h"
#endif #endif
...@@ -207,10 +207,7 @@ void Key_Auto_Save(void) ...@@ -207,10 +207,7 @@ void Key_Auto_Save(void)
PageType = Page_Time; PageType = Page_Time;
} }
void MenuData_Unit_Init(void)
{
MenuData.Unit = 0;
}
uint8_t ClearODO_Flag = 0; uint8_t ClearODO_Flag = 0;
void TYW_RESET_ODO(void) void TYW_RESET_ODO(void)
......
...@@ -78,5 +78,5 @@ uint8_t Get_Current_PageType(void); ...@@ -78,5 +78,5 @@ uint8_t Get_Current_PageType(void);
void TYW_RESET_ODO(void); void TYW_RESET_ODO(void);
uint8_t Get_Dis_Unit(void); uint8_t Get_Dis_Unit(void);
void Key_Check_Service(void); void Key_Check_Service(void);
void MenuData_Unit_Init(void);
#endif #endif
...@@ -39,31 +39,27 @@ void PwrMemInit(void) ...@@ -39,31 +39,27 @@ void PwrMemInit(void)
static void Power_KL30_Init(void) static void Power_KL30_Init(void)
{ {
// ClearODO_Flag = 0; // ClearODO_Flag = 0;
UART_Channel_Config_st_t loc_config;
Gpio_Init(Gpio_KL30_Init);
eeprom_StoreInfo_Init(); eeprom_StoreInfo_Init();
loc_config.u32UARTChEn = 1U;
loc_config.u32UARTbps = 115200U;
loc_config.pfnUARTConfirmCallBack = NULL;
loc_config.pfnUARTReadMsgCallBack = Amt630hUartRecvData;
RTE_UART_Init(UART_CH2, &loc_config);
Analog_Signal_Conv_Init(); Analog_Signal_Conv_Init();
Sys_KL30_Init();
BackLight_Init(); Data_Vehicle_Speed_KL30_Wakeup_Init();
// Sys_KL30_Init(); Data_Engine_Speed_KL30_Wakeup_Init();
// Checkself_Init(); LINE_IN_Init();
//Data_Vehicle_Speed_KL30_Init(); Key_KL30_Init_EXample();
//Data_Engine_Speed_KL30_Init();
// LINE_IN_Init();
Key_KL30_Init_EXample();
//Light_Sensor_Init_Example();//注意顺序1
Data_User_Mileage_KL30Init(); Data_User_Mileage_KL30Init();
Fuel_KL30_Init(); Fuel_KL30_Init();
Amt630hInit();
TimerM_PWM_counter_Output_Init(TIMERM_COUNTER1, 400, 64000000);
TimerM_PWM_CH_Output_init(TIMERM_COUNTER1, TIMERM_CHB, ActiveLevel_High);
TimerM_PWM_counter_Output_Init(TIMERM_COUNTER1, 400, 64000000);
TimerM_PWM_CH_Output_init(TIMERM_COUNTER1, TIMERM_CHB, ActiveLevel_High);
// Telltales_Auto_Start_Stop();
// Telltales_Init();
// MenuData_Unit_Init();
// g_stRTCInformation.u8RTCSecond = 0; // g_stRTCInformation.u8RTCSecond = 0;
// g_stRTCInformation.u8RTCMinute = 0; // g_stRTCInformation.u8RTCMinute = 0;
// g_stRTCInformation.u8RTCHour = 0; // g_stRTCInformation.u8RTCHour = 0;
...@@ -73,6 +69,7 @@ static void Power_KL30_Init(void) ...@@ -73,6 +69,7 @@ static void Power_KL30_Init(void)
// RTE_RTC_Init(g_stRTCInformation); // RTE_RTC_Init(g_stRTCInformation);
// RTE_DEEPSLEEP_GPIO_Interrupt_Enable(WAKEUP_KL15_In,Trigger_Rising); // RTE_DEEPSLEEP_GPIO_Interrupt_Enable(WAKEUP_KL15_In,Trigger_Rising);
Protocol_KL30_Wakeup_Init(); Protocol_KL30_Wakeup_Init();
} }
//extern uint32_t PowerIgnOffTimeLine; //extern uint32_t PowerIgnOffTimeLine;
static void Power_Wakeup_Init(void) static void Power_Wakeup_Init(void)
...@@ -85,19 +82,17 @@ static void Power_Wakeup_Init(void) ...@@ -85,19 +82,17 @@ static void Power_Wakeup_Init(void)
Analog_Signal_Conv_Init(); Analog_Signal_Conv_Init();
Data_User_Mileage_WakeupInit(); Data_User_Mileage_WakeupInit();
BackLight_Init(); Sys_WakeUp_Init();
// Sys_WakeUp_Init(); Data_Vehicle_Speed_KL30_Wakeup_Init();
// Data_Vehicle_Speed_KL30_Init(); Data_Engine_Speed_KL30_Wakeup_Init();
// Data_Engine_Speed_KL30_Init(); LINE_IN_Init();
// LINE_IN_Init();
Key_Wakeup_Init_EXample(); Key_Wakeup_Init_EXample();
Line_In_KL15_ON_Init(); Line_In_KL15_ON_Init();
//Light_Sensor_Init_Example();//注意顺序1
Fuel_KL30_Init(); Fuel_KL30_Init();
Amt630hInit();
TimerM_PWM_counter_Output_Init(TIMERM_COUNTER1, 400, 64000000); TimerM_PWM_counter_Output_Init(TIMERM_COUNTER1, 400, 64000000);
TimerM_PWM_CH_Output_init(TIMERM_COUNTER1, TIMERM_CHB, ActiveLevel_High); TimerM_PWM_CH_Output_init(TIMERM_COUNTER1, TIMERM_CHB, ActiveLevel_High);
// Telltales_Init(); //Telltales_Init();
// RTE_DEEPSLEEP_GPIO_Interrupt_Enable(WAKEUP_KL15_In,Trigger_Rising); // RTE_DEEPSLEEP_GPIO_Interrupt_Enable(WAKEUP_KL15_In,Trigger_Rising);
Protocol_KL30_Wakeup_Init(); Protocol_KL30_Wakeup_Init();
} }
...@@ -114,21 +109,15 @@ static void Power_OVP_Init(void) ...@@ -114,21 +109,15 @@ static void Power_OVP_Init(void)
static void Power_IG_OFF_Init(void) static void Power_IG_OFF_Init(void)
{ {
Line_In_KL15_OFF_Init(); Line_In_KL15_OFF_Init();
// Checkself_Init();
} }
static void Power_IG_ON_Init(void) static void Power_IG_ON_Init(void)
{ {
// ClearODO_Flag = 0; // ClearODO_Flag = 0;
BackLight_Init();
// Checkself_Init();
Line_In_KL15_ON_Init(); Line_In_KL15_ON_Init();
// Telltales_KL15_Init(); Telltales_KL15_Init();
Fuel_KL15_Init(); Fuel_KL15_Init();
// Telltales_Auto_Start_Stop();
// Data_Vehicle_Speed_KL15_Init();
// Data_Engine_Speed_KL15_Init();
} }
static void Power_Sleep_Init(void) static void Power_Sleep_Init(void)
...@@ -143,7 +132,7 @@ static void Power_Sleep_Init(void) ...@@ -143,7 +132,7 @@ static void Power_Sleep_Init(void)
// //CGC->CSC = 1 ; //HIOSTOP = 1 // //CGC->CSC = 1 ; //HIOSTOP = 1
Gpio_Init(Gpio_Sleep_Init); Gpio_Init(Gpio_Sleep_Init);
AMT630H_Sleep();
Analog_Signal_Conv_Stop(); Analog_Signal_Conv_Stop();
// RTE_DEEPSLEEP_Enable(); // RTE_DEEPSLEEP_Enable();
......
#include "System_Monitor.h"
#include <stdio.h>
typedef struct
{
monitorlib_uint8_t SumCnt;
monitorlib_uint16_t DebounceTimer;
monitorlib_uint32_t ActVoltage;
monitorlib_uint8_t FinalSts;
monitorlib_uint8_t ActSts;
} MonitorStruct;
MonitorStruct SysFun_KL30Monitor;
MonitorStruct SysFun_KL15Monitor;
MonitorStruct SysNM_KL30Monitor;
MonitorStruct SysNM_KL15Monitor;
#define Base_Vol 0u
#define ENTER_LOW_N_RANGE 6500U
#define EXIT_LOW_N_RANGE 7000U
#define ENTER_LOW_Y_RANGE 9000U
#define EXIT_LOW_Y_RANGE 9500U
#define EXIT_HIGH_Y_RANGE 16000U
#define ENTER_HIGH_Y_RANGE 16500U
#define EXIT_HIGH_N_RANGE 18500U
#define ENTER_HIGH_N_RANGE 19000U
#define Top_Vol 0xffffu
static monitorlib_uint8_t System_Calc_NMRange(monitorlib_uint16_t u16Vol);
static monitorlib_uint8_t System_Calc_FunRange(monitorlib_uint16_t u16Vol);
static void System_Fast_WakeUp(void);
static void System_Fun_Process(void);
static void System_NM_Process(void);
MonitorExt_st pfunction;
monitorlib_uint8_t SysWakeUpMode = 0u;
monitorlib_uint8_t SetVolFlag = 0u;
monitorlib_uint16_t FUNSysVol_Range [ 10u ] = {
Base_Vol,
ENTER_LOW_N_RANGE,
EXIT_LOW_N_RANGE,
ENTER_LOW_Y_RANGE,
EXIT_LOW_Y_RANGE,
EXIT_HIGH_Y_RANGE,
ENTER_HIGH_Y_RANGE,
EXIT_HIGH_N_RANGE,
ENTER_HIGH_N_RANGE,
Top_Vol,
};
monitorlib_uint16_t NMSysVol_Range [ 10u ] = {
Base_Vol,
ENTER_LOW_N_RANGE,
EXIT_LOW_N_RANGE,
ENTER_LOW_Y_RANGE,
EXIT_LOW_Y_RANGE,
EXIT_HIGH_Y_RANGE,
ENTER_HIGH_Y_RANGE,
EXIT_HIGH_N_RANGE,
ENTER_HIGH_N_RANGE,
Top_Vol,
};
monitorlib_uint16_t t_FUN_KL30_Debounce;
monitorlib_uint16_t t_FUN_KL15_Debounce;
monitorlib_uint16_t t_NM_KL30_Debounce;
monitorlib_uint16_t t_NM_KL15_Debounce;
monitorlib_uint16_t t_NM_KL30_Debounce_Cancel;
monitorlib_uint16_t t_NM_KL15_Debounce_Cancel;
monitorlib_uint16_t t_FUN_KL30_Debounce_Cancel;
monitorlib_uint16_t t_FUN_KL15_Debounce_Cancel;
monitorlib_uint16_t t_NM_KL30_timer;
monitorlib_uint16_t t_FUN_KL30_timer;
monitorlib_uint8_t Read_KL30_ConvertFinish(void)
{
return SysWakeUpMode;
}
static monitorlib_uint8_t System_Calc_FunRange(monitorlib_uint16_t u16Vol)
{
monitorlib_uint8_t i;
for ( i = 0u; i < (sizeof(FUNSysVol_Range) / sizeof(FUNSysVol_Range [ 0 ])); i++ )
{
if ( u16Vol < FUNSysVol_Range [ i ] )
{
break;
}
}
return i;
}
static monitorlib_uint8_t System_Calc_NMRange(monitorlib_uint16_t u16Vol)
{
monitorlib_uint8_t i;
for ( i = 0u; i < (sizeof(NMSysVol_Range) / sizeof(NMSysVol_Range [ 0 ])); i++ )
{
if ( u16Vol < NMSysVol_Range [ i ] )
{
break;
}
}
return i;
}
void Sys_Set_Pata(const monitorlib_uint16_t FUN_Vol [], MonitorExt_st *pfunc)
{
FUNSysVol_Range [ 0 ] = FUN_Vol [ 0 ];
FUNSysVol_Range [ 1 ] = FUN_Vol [ 1 ];
FUNSysVol_Range [ 2 ] = FUN_Vol [ 2 ];
FUNSysVol_Range [ 3 ] = FUN_Vol [ 3 ];
FUNSysVol_Range [ 4 ] = FUN_Vol [ 4 ];
FUNSysVol_Range [ 5 ] = FUN_Vol [ 5 ];
FUNSysVol_Range [ 6 ] = FUN_Vol [ 6 ];
FUNSysVol_Range [ 7 ] = FUN_Vol [ 7 ];
FUNSysVol_Range [ 8 ] = FUN_Vol [ 8 ];
FUNSysVol_Range [ 9 ] = FUN_Vol [ 9 ];
t_FUN_KL30_Debounce = FUN_Vol [ 10 ];
t_FUN_KL15_Debounce = FUN_Vol [ 11 ];
NMSysVol_Range [ 0 ] = FUN_Vol [ 12 ];
NMSysVol_Range [ 1 ] = FUN_Vol [ 13 ];
NMSysVol_Range [ 2 ] = FUN_Vol [ 14 ];
NMSysVol_Range [ 3 ] = FUN_Vol [ 15 ];
NMSysVol_Range [ 4 ] = FUN_Vol [ 16 ];
NMSysVol_Range [ 5 ] = FUN_Vol [ 17 ];
NMSysVol_Range [ 6 ] = FUN_Vol [ 18 ];
NMSysVol_Range [ 7 ] = FUN_Vol [ 19 ];
NMSysVol_Range [ 8 ] = FUN_Vol [ 20 ];
NMSysVol_Range [ 9 ] = FUN_Vol [ 21 ];
t_NM_KL30_Debounce = FUN_Vol [ 22 ];
t_NM_KL15_Debounce = FUN_Vol [ 23 ];
t_NM_KL30_Debounce_Cancel = FUN_Vol [ 24 ];
t_FUN_KL30_Debounce_Cancel = FUN_Vol [ 25 ];
pfunction.SysGet_KL30_Valid = pfunc->SysGet_KL30_Valid;
pfunction.SysGet_KL15_Valid = pfunc->SysGet_KL15_Valid;
pfunction.SysGet_KL30_value_Force = pfunc->SysGet_KL30_value_Force;
pfunction.SysGet_KL15_value_Force = pfunc->SysGet_KL15_value_Force;
pfunction.SysGet_KL30_value = pfunc->SysGet_KL30_value;
pfunction.SysGet_KL15_value = pfunc->SysGet_KL15_value;
pfunction.SysGet_KL15Line = pfunc->SysGet_KL15Line;
pfunction.COM_Delay = pfunc->COM_Delay;
pfunction.SysMonitorLogic = pfunc->SysMonitorLogic;
SetVolFlag = 0x55u;
}
void System_Monitor_KL30Init(void)
{
SysWakeUpMode = 0u;
SysFun_KL30Monitor.SumCnt = 0u;
SysFun_KL30Monitor.DebounceTimer = 0u;
SysFun_KL30Monitor.ActVoltage = 0u;
SysFun_KL30Monitor.FinalSts = 0u;
SysFun_KL30Monitor.ActSts = 0u;
SysFun_KL15Monitor.SumCnt = 0u;
SysFun_KL15Monitor.DebounceTimer = 0u;
SysFun_KL15Monitor.ActVoltage = 0u;
SysFun_KL15Monitor.FinalSts = 0u;
SysFun_KL15Monitor.ActSts = 0u;
SysNM_KL30Monitor.SumCnt = 0u;
SysNM_KL30Monitor.DebounceTimer = 0u;
SysNM_KL30Monitor.ActVoltage = 0u;
SysNM_KL30Monitor.FinalSts = 0u;
SysNM_KL30Monitor.ActSts = 0u;
SysNM_KL15Monitor.SumCnt = 0u;
SysNM_KL15Monitor.DebounceTimer = 0u;
SysNM_KL15Monitor.ActVoltage = 0u;
SysNM_KL15Monitor.FinalSts = 0u;
SysNM_KL15Monitor.ActSts = 0u;
if ( SetVolFlag != 0x55u )
{
t_NM_KL30_Debounce = 1000u;
t_NM_KL15_Debounce = 2u;
t_FUN_KL30_Debounce = 1000u;
t_FUN_KL15_Debounce = 2u;
t_NM_KL30_Debounce_Cancel = 1000U;
t_NM_KL15_Debounce_Cancel = 2U;
t_FUN_KL30_Debounce_Cancel = 1000U;
t_FUN_KL15_Debounce_Cancel = 2U;
FUNSysVol_Range [ 0 ] = Base_Vol;
FUNSysVol_Range [ 1 ] = ENTER_LOW_N_RANGE;
FUNSysVol_Range [ 2 ] = EXIT_LOW_N_RANGE;
FUNSysVol_Range [ 3 ] = ENTER_LOW_Y_RANGE;
FUNSysVol_Range [ 4 ] = EXIT_LOW_Y_RANGE;
FUNSysVol_Range [ 5 ] = EXIT_HIGH_Y_RANGE;
FUNSysVol_Range [ 6 ] = ENTER_HIGH_Y_RANGE;
FUNSysVol_Range [ 7 ] = EXIT_HIGH_N_RANGE;
FUNSysVol_Range [ 8 ] = ENTER_HIGH_N_RANGE;
FUNSysVol_Range [ 9 ] = Top_Vol;
NMSysVol_Range [ 0 ] = Base_Vol;
NMSysVol_Range [ 1 ] = ENTER_LOW_N_RANGE;
NMSysVol_Range [ 2 ] = EXIT_LOW_N_RANGE;
NMSysVol_Range [ 3 ] = ENTER_LOW_Y_RANGE;
NMSysVol_Range [ 4 ] = EXIT_LOW_Y_RANGE;
NMSysVol_Range [ 5 ] = EXIT_HIGH_Y_RANGE;
NMSysVol_Range [ 6 ] = ENTER_HIGH_Y_RANGE;
NMSysVol_Range [ 7 ] = EXIT_HIGH_N_RANGE;
NMSysVol_Range [ 8 ] = ENTER_HIGH_N_RANGE;
NMSysVol_Range [ 9 ] = Top_Vol;
SetVolFlag = 0x55u;
}
if ( pfunction.COM_Delay != (( void * )0) )
{
pfunction.COM_Delay(260U);
}
System_Fast_WakeUp( );
}
void System_Monitor_WakeupInit(void)
{
SysWakeUpMode = 0u;
SysFun_KL30Monitor.SumCnt = 0u;
SysFun_KL30Monitor.DebounceTimer = 0u;
SysFun_KL30Monitor.ActVoltage = 0u;
SysFun_KL30Monitor.FinalSts = 0u;
SysFun_KL30Monitor.ActSts = 0u;
SysFun_KL15Monitor.SumCnt = 0u;
SysFun_KL15Monitor.DebounceTimer = 0u;
SysFun_KL15Monitor.ActVoltage = 0u;
SysFun_KL15Monitor.FinalSts = 0u;
SysFun_KL15Monitor.ActSts = 0u;
SysNM_KL30Monitor.SumCnt = 0u;
SysNM_KL30Monitor.DebounceTimer = 0u;
SysNM_KL30Monitor.ActVoltage = 0u;
SysNM_KL30Monitor.FinalSts = 0u;
SysNM_KL30Monitor.ActSts = 0u;
SysNM_KL15Monitor.SumCnt = 0u;
SysNM_KL15Monitor.DebounceTimer = 0u;
SysNM_KL15Monitor.ActVoltage = 0u;
SysNM_KL15Monitor.FinalSts = 0u;
SysNM_KL15Monitor.ActSts = 0u;
if ( SetVolFlag != 0x55u )
{
t_NM_KL30_Debounce = 1000u;
t_NM_KL15_Debounce = 2u;
t_FUN_KL30_Debounce = 1000u;
t_FUN_KL15_Debounce = 2u;
t_NM_KL30_Debounce_Cancel = 1000U;
t_NM_KL15_Debounce_Cancel = 2U;
t_FUN_KL30_Debounce_Cancel = 1000U;
t_FUN_KL15_Debounce_Cancel = 2U;
FUNSysVol_Range [ 0 ] = Base_Vol;
FUNSysVol_Range [ 1 ] = ENTER_LOW_N_RANGE;
FUNSysVol_Range [ 2 ] = EXIT_LOW_N_RANGE;
FUNSysVol_Range [ 3 ] = ENTER_LOW_Y_RANGE;
FUNSysVol_Range [ 4 ] = EXIT_LOW_Y_RANGE;
FUNSysVol_Range [ 5 ] = EXIT_HIGH_Y_RANGE;
FUNSysVol_Range [ 6 ] = ENTER_HIGH_Y_RANGE;
FUNSysVol_Range [ 7 ] = EXIT_HIGH_N_RANGE;
FUNSysVol_Range [ 8 ] = ENTER_HIGH_N_RANGE;
FUNSysVol_Range [ 9 ] = Top_Vol;
NMSysVol_Range [ 0 ] = Base_Vol;
NMSysVol_Range [ 1 ] = ENTER_LOW_N_RANGE;
NMSysVol_Range [ 2 ] = EXIT_LOW_N_RANGE;
NMSysVol_Range [ 3 ] = ENTER_LOW_Y_RANGE;
NMSysVol_Range [ 4 ] = EXIT_LOW_Y_RANGE;
NMSysVol_Range [ 5 ] = EXIT_HIGH_Y_RANGE;
NMSysVol_Range [ 6 ] = ENTER_HIGH_Y_RANGE;
NMSysVol_Range [ 7 ] = EXIT_HIGH_N_RANGE;
NMSysVol_Range [ 8 ] = ENTER_HIGH_N_RANGE;
NMSysVol_Range [ 9 ] = Top_Vol;
SetVolFlag = 0x55u;
}
System_Fast_WakeUp( );
}
void Sys_Status_Update_Service(void)
{
System_Fun_Process( );
System_NM_Process( );
if ( pfunction.SysMonitorLogic != (( void * )0) )
{
pfunction.SysMonitorLogic( );
}
}
static void System_Fast_WakeUp(void)
{
monitorlib_uint16_t KL30_Voltage;
monitorlib_uint16_t KL15_Voltage;
monitorlib_uint16_t Voltage;
monitorlib_uint8_t NormalKL30Cnt = 0U;
monitorlib_uint8_t abnormalKL30Cnt = 0U;
monitorlib_uint8_t AttemptCnt = 0U;
AttemptCnt = 0u;
while ( SysNM_KL30Monitor.FinalSts == 0u )
{
if ( pfunction.COM_Delay != (( void * )0) )
{
pfunction.COM_Delay(2U);
}
/*KL30 KL15 voltage */
if ( pfunction.SysGet_KL30_value_Force != ( void * )0 )
{
KL30_Voltage = pfunction.SysGet_KL30_value_Force( );
}
else
{
KL30_Voltage = 0u;
}
if ( pfunction.SysGet_KL15_value_Force != ( void * )0 )
{
KL15_Voltage = pfunction.SysGet_KL15_value_Force( );
}
else
{
KL15_Voltage = 0u;
}
if ( KL30_Voltage > KL15_Voltage )
{
Voltage = KL30_Voltage;
}
else
{
Voltage = KL15_Voltage;
}
if ( (Voltage <= NMSysVol_Range [ 2 ]) || (Voltage >= NMSysVol_Range [ 7 ]) )
{
NormalKL30Cnt = 0U;
abnormalKL30Cnt++;
}
else
{
NormalKL30Cnt++;
abnormalKL30Cnt = 0U;
}
AttemptCnt++;
if ( AttemptCnt >= 10u )
{
break;
}
if ( NormalKL30Cnt >= 5U )
{
SysNM_KL30Monitor.FinalSts = 5u;
}
if ( abnormalKL30Cnt >= 5U )
{
SysNM_KL30Monitor.FinalSts = 9u;
}
}
if ( (SysNM_KL30Monitor.FinalSts != 0u) )
{
SysWakeUpMode = 0x55U;
if ( pfunction.SysGet_KL15Line != (( void * )0) )
{
SysNM_KL15Monitor.FinalSts = pfunction.SysGet_KL15Line( );
SysNM_KL15Monitor.ActSts = pfunction.SysGet_KL15Line( );
}
else
{
SysNM_KL15Monitor.FinalSts = 0u;
SysNM_KL15Monitor.ActSts = 0u;
}
if ( pfunction.SysMonitorLogic != ( void * )0 )
{
pfunction.SysMonitorLogic( );
}
}
}
static void System_NM_Process(void)
{
monitorlib_uint8_t m8;
static monitorlib_uint16_t DebpounceTimer;
monitorlib_uint16_t Voltage;
monitorlib_uint8_t VoltageKL30Valid;
monitorlib_uint8_t VoltageKL15Valid;
monitorlib_uint16_t Voltage_KL15;
monitorlib_uint16_t Voltage_KL30;
if ( pfunction.SysGet_KL15Line != (( void * )0) )
{
if ( SysNM_KL15Monitor.ActSts == pfunction.SysGet_KL15Line( ) )
{
if ( SysNM_KL15Monitor.DebounceTimer < t_NM_KL15_Debounce )
{
SysNM_KL15Monitor.DebounceTimer++;
}
else
{
SysNM_KL15Monitor.FinalSts = SysNM_KL15Monitor.ActSts;
}
}
else
{
SysNM_KL15Monitor.DebounceTimer = 0u;
SysNM_KL15Monitor.ActSts = pfunction.SysGet_KL15Line( );
}
}
else
{
SysNM_KL15Monitor.FinalSts = 0u;
SysNM_KL15Monitor.ActSts = 0u;
SysNM_KL15Monitor.DebounceTimer = 0u;
}
if ( pfunction.SysGet_KL30_Valid != ( void * )0 )
{
VoltageKL30Valid = pfunction.SysGet_KL30_Valid( );
}
else
{
VoltageKL30Valid = 0u;
}
if ( pfunction.SysGet_KL15_Valid != ( void * )0 )
{
VoltageKL15Valid = pfunction.SysGet_KL15_Valid( );
}
else
{
VoltageKL15Valid = 0u;
}
if ( (VoltageKL30Valid == 1U) && (VoltageKL15Valid == 1U) )
{
if ( pfunction.SysGet_KL15_value != (( void * )0) )
{
Voltage_KL15 = pfunction.SysGet_KL15_value( );
}
else
{
Voltage_KL15 = 0u;
}
if ( pfunction.SysGet_KL15_value != (( void * )0) )
{
Voltage_KL30 = pfunction.SysGet_KL30_value( );
}
else
{
Voltage_KL30 = 0u;
}
if ( Voltage_KL30 > Voltage_KL15 )
{
Voltage = Voltage_KL30;
}
else
{
Voltage = Voltage_KL15;
}
if ( SysNM_KL30Monitor.SumCnt < 50u )
{
SysNM_KL30Monitor.ActVoltage += Voltage;
SysNM_KL30Monitor.SumCnt += 1u;
Voltage = ( monitorlib_uint16_t )(SysNM_KL30Monitor.ActVoltage / SysNM_KL30Monitor.SumCnt);
}
else
{
SysNM_KL30Monitor.SumCnt = 0u;
SysNM_KL30Monitor.ActVoltage = 0u;
SysNM_KL30Monitor.ActVoltage += Voltage;
SysNM_KL30Monitor.SumCnt += 1u;
Voltage = ( monitorlib_uint16_t )(SysNM_KL30Monitor.ActVoltage / SysNM_KL30Monitor.SumCnt);
}
m8 = System_Calc_NMRange(Voltage);
if ( SysNM_KL30Monitor.ActSts == m8 )
{
switch ( SysNM_KL30Monitor.FinalSts )
{
case 0:
case 1:
case 9:
t_NM_KL30_timer = t_NM_KL30_Debounce_Cancel;
break;
default:
t_NM_KL30_timer = t_NM_KL30_Debounce;
break;
}
if ( SysNM_KL30Monitor.DebounceTimer < t_NM_KL30_timer ) /*40202-8*/
{
SysNM_KL30Monitor.DebounceTimer++;
}
else
{
DebpounceTimer = 0u;
if ( SysNM_KL30Monitor.FinalSts == 9u ) /* 高压 */
{
if ( (m8 == 9u) || (m8 == 8u) )
{
SysNM_KL30Monitor.FinalSts = 9u; /** 维持不变 **/
}
else
{
SysNM_KL30Monitor.FinalSts = m8; /**退�?*/
}
}
if ( SysNM_KL30Monitor.FinalSts == 1u ) /* 低压 */
{
if ( (m8 == 1u) || (m8 == 2u) )
{
SysNM_KL30Monitor.FinalSts = 1u; /** 维持不变 */
}
else
{
SysNM_KL30Monitor.FinalSts = m8; /**退�?*/
}
}
/* 非高低压 */
if ( (SysNM_KL30Monitor.FinalSts != 1u) && (SysNM_KL30Monitor.FinalSts != 9u) )
{
SysNM_KL30Monitor.FinalSts = m8; /** 进入*/
}
}
}
else
{
/* 计时时间清除 */
SysNM_KL30Monitor.DebounceTimer = 0U;
DebpounceTimer++;
if ( DebpounceTimer >= 5u )
{
DebpounceTimer = 0u;
SysNM_KL30Monitor.ActSts = m8;
}
}
}
}
static void System_Fun_Process(void)
{
monitorlib_uint8_t m8;
monitorlib_uint8_t VoltageKL30Valid;
monitorlib_uint8_t VoltageKL15Valid;
monitorlib_uint16_t Voltage;
monitorlib_uint16_t Voltage_KL15;
monitorlib_uint16_t Voltage_KL30;
static monitorlib_uint16_t DebpounceTimer;
if ( pfunction.SysGet_KL15Line != (( void * )0) )
{
if ( SysFun_KL15Monitor.ActSts == pfunction.SysGet_KL15Line( ) )
{
if ( SysFun_KL15Monitor.DebounceTimer < t_FUN_KL15_Debounce )
{
SysFun_KL15Monitor.DebounceTimer++;
}
else
{
SysFun_KL15Monitor.FinalSts = SysFun_KL15Monitor.ActSts;
}
if(SysFun_KL15Monitor.ActSts)
{
SysFun_KL15Monitor.FinalSts = SysFun_KL15Monitor.ActSts;
}
}
else
{
SysFun_KL15Monitor.DebounceTimer = 0u;
SysFun_KL15Monitor.ActSts = pfunction.SysGet_KL15Line( );
}
}
else
{
SysFun_KL15Monitor.DebounceTimer = 0u;
SysFun_KL15Monitor.FinalSts = 0u;
SysFun_KL15Monitor.ActSts = 0u;
}
if ( pfunction.SysGet_KL30_Valid != (( void * )0) )
{
VoltageKL30Valid = pfunction.SysGet_KL30_Valid( );
}else
{
VoltageKL30Valid = 0u;
}
if ( pfunction.SysGet_KL15_Valid != (( void * )0) )
{
VoltageKL15Valid = pfunction.SysGet_KL15_Valid( );
}else
{
VoltageKL15Valid = 0u;
}
if ( (VoltageKL30Valid == 1U) && (VoltageKL15Valid == 1U) )
{
if ( pfunction.SysGet_KL15_value != (( void * )0) )
{
Voltage_KL15 = pfunction.SysGet_KL15_value( );
}
else
{
Voltage_KL15 = 0u;
}
if ( pfunction.SysGet_KL30_value != (( void * )0) )
{
Voltage_KL30 = pfunction.SysGet_KL30_value( );
}
else
{
Voltage_KL30 = 0u;
}
if ( Voltage_KL30 > Voltage_KL15 )
{
Voltage = Voltage_KL30;
}
else
{
Voltage = Voltage_KL15;
}
if ( SysFun_KL30Monitor.SumCnt < 50u )
{
SysFun_KL30Monitor.ActVoltage += Voltage;
SysFun_KL30Monitor.SumCnt += 1u;
Voltage = ( monitorlib_uint16_t )(SysFun_KL30Monitor.ActVoltage / SysFun_KL30Monitor.SumCnt);
}
else
{
SysFun_KL30Monitor.SumCnt = 0u;
SysFun_KL30Monitor.ActVoltage = 0u;
SysFun_KL30Monitor.ActVoltage += Voltage;
SysFun_KL30Monitor.SumCnt += 1u;
Voltage = ( monitorlib_uint16_t )(SysFun_KL30Monitor.ActVoltage / SysFun_KL30Monitor.SumCnt);
}
m8 = System_Calc_FunRange(Voltage);
// //printf("1 is %d, 2 is %d\r\n", m8, SysFun_KL30Monitor.FinalSts);
if ( SysFun_KL30Monitor.ActSts == m8 )
{
DebpounceTimer = 0u;
switch ( SysFun_KL30Monitor.FinalSts )
{
case 0:
case 1:
case 9:
t_FUN_KL30_timer = t_FUN_KL30_Debounce_Cancel;
break;
default:
t_FUN_KL30_timer = t_FUN_KL30_Debounce;
break;
}
/* 计时�?计时�?1000*2ms */
if ( SysFun_KL30Monitor.DebounceTimer < t_FUN_KL30_timer ) /*40202-8*/
{
SysFun_KL30Monitor.DebounceTimer++;
}
else
{
if ( SysFun_KL30Monitor.FinalSts > 7u ) /* 高压 */
{
if ( (m8 == 9u) || (m8 == 8u) || (m8 == 7u) )
{
SysFun_KL30Monitor.FinalSts = 9u;
SysFun_KL15Monitor.FinalSts = 0u;
}
else
{
SysFun_KL30Monitor.FinalSts = m8;
}
}
if ( SysFun_KL30Monitor.FinalSts == 1u ) /* 低压 */
{
if ( (m8 == 1u) || (m8 == 2u) )
{
SysFun_KL30Monitor.FinalSts = 1u;
SysFun_KL15Monitor.FinalSts = 0u;
}
else
{
SysFun_KL30Monitor.FinalSts = m8;
}
}
/* 非高低压 */
if ( (SysFun_KL30Monitor.FinalSts != 1u) && (SysFun_KL30Monitor.FinalSts <= 7u) )
{
SysFun_KL30Monitor.FinalSts = m8;
}
}
}
else
{
/* 计时时间清除 */
SysFun_KL30Monitor.DebounceTimer = 0U;
DebpounceTimer++;
if ( DebpounceTimer >= 5u )
{
DebpounceTimer = 0u;
SysFun_KL30Monitor.ActSts = m8;
}
}
}
/*
else
{
SysFun_KL30Monitor.FinalSts = 1u;
SysFun_KL15Monitor.FinalSts = 0u;
}*/
}
monitorlib_uint8_t System_NM_KL30_Status_Get(void)
{
return SysNM_KL30Monitor.FinalSts;
}
monitorlib_uint8_t System_NM_KL15_Status_Get(void)
{
return SysNM_KL15Monitor.FinalSts;
}
monitorlib_uint8_t System_FUN_KL30_Status_Get(void)
{
return SysFun_KL30Monitor.FinalSts;
}
monitorlib_uint8_t System_FUN_KL15_Status_Get(void)
{
return SysFun_KL15Monitor.FinalSts;
}
monitorlib_uint16_t Get_Sysmonitor_Version(void)
{
return 0x0002u;
}
#include "System_Monitor.h" #include "System_Monitor.h"
#include "Components.h" #include "Components.h"
#include "delay.h"
#include "wdt.h"
#define u16Base_Vol 0u
#define u16ENTER_LOW_N_RANGE 7000U
#define u16EXIT_LOW_N_RANGE 7500U
#define u16ENTER_LOW_Y_RANGE 9000U
#define u16EXIT_LOW_Y_RANGE 10000U
#define u16Base_Vol 0u #define u16EXIT_HIGH_Y_RANGE 0xffffu
#define u16ENTER_LOW_N_RANGE 7000U #define u16ENTER_HIGH_Y_RANGE 0xffffu
#define u16EXIT_LOW_N_RANGE 8000U #define u16EXIT_HIGH_N_RANGE 0xffffu
#define u16ENTER_LOW_Y_RANGE 9000U #define u16ENTER_HIGH_N_RANGE 0xffffu
#define u16EXIT_LOW_Y_RANGE 10000U #define u16Top_Vol 0xffffu
#define u16EXIT_HIGH_Y_RANGE 15000U
#define u16ENTER_HIGH_Y_RANGE 16000U
#define u16EXIT_HIGH_N_RANGE 18000U
#define u16ENTER_HIGH_N_RANGE 19000U
#define u16Top_Vol 0xffffu
void Delay_ms(uint32_t u32Ms); void Delay_ms(uint32_t u32Ms);
// #pragma alignvar(8) // #pragma alignvar(8)
static const monitorlib_uint16_t SysFun_Range[24u] = { static const monitorlib_uint16_t SysFun_Range [ 26u ] = {
u16Base_Vol, u16Base_Vol,
u16ENTER_LOW_N_RANGE, u16ENTER_LOW_N_RANGE,
...@@ -34,8 +35,8 @@ static const monitorlib_uint16_t SysFun_Range[24u] = { ...@@ -34,8 +35,8 @@ static const monitorlib_uint16_t SysFun_Range[24u] = {
u16ENTER_HIGH_N_RANGE, u16ENTER_HIGH_N_RANGE,
u16Top_Vol, u16Top_Vol,
500, /* 进入异常电压时间 1S */ 2500,
50u, /* KL15消抖时间 100ms*/ 50u,
u16Base_Vol, u16Base_Vol,
u16ENTER_LOW_N_RANGE, u16ENTER_LOW_N_RANGE,
...@@ -53,33 +54,36 @@ static const monitorlib_uint16_t SysFun_Range[24u] = { ...@@ -53,33 +54,36 @@ static const monitorlib_uint16_t SysFun_Range[24u] = {
u16Top_Vol, u16Top_Vol,
2u, 2u,
2u, 2u,
2u,
0u,
}; };
monitorlib_uint16_t Sys_Read_KL30_Voltage_F(void) monitorlib_uint16_t Sys_Read_KL30_Voltage_F(void)
{ {
monitorlib_uint16_t u16Voltage; monitorlib_uint16_t u16Voltage;
u16Voltage = ADC_Conv_Single_Channel(ADC_CH_KL30_VOLTAGE); u16Voltage = (monitorlib_uint16_t)ADC_Conv_Single_Channel(ADC_CH_KL30_VOLTAGE);
return u16Voltage; return u16Voltage;
} }
monitorlib_uint16_t Sys_Read_KL15_Voltage_F(void) monitorlib_uint16_t Sys_Read_KL15_Voltage_F(void)
{ {
monitorlib_uint16_t u16Voltage; monitorlib_uint16_t u16Voltage;
u16Voltage = ADC_Conv_Single_Channel(ADC_CH_KL15_VOLTAGE); u16Voltage = (monitorlib_uint16_t)ADC_Conv_Single_Channel(ADC_CH_KL15_VOLTAGE);
return u16Voltage; return u16Voltage;
} }
monitorlib_uint16_t Sys_Read_KL30_Voltage(void) monitorlib_uint16_t Sys_Read_KL30_Voltage(void)
{ {
monitorlib_uint16_t u16Voltage; monitorlib_uint16_t u16Voltage;
u16Voltage = ADC_Read_Signal(ADC_CH_KL30_VOLTAGE); u16Voltage = (monitorlib_uint16_t)ADC_Read_Signal(ADC_CH_KL30_VOLTAGE);
return u16Voltage; return u16Voltage;
} }
monitorlib_uint16_t Sys_Read_KL15_Voltage(void) monitorlib_uint16_t Sys_Read_KL15_Voltage(void)
{ {
monitorlib_uint16_t u16Voltage; monitorlib_uint16_t u16Voltage;
u16Voltage = ADC_Read_Signal(ADC_CH_KL15_VOLTAGE); u16Voltage = (monitorlib_uint16_t)ADC_Read_Signal(ADC_CH_KL15_VOLTAGE);
return u16Voltage; return u16Voltage;
} }
...@@ -99,17 +103,20 @@ monitorlib_uint8_t Sys_Read_KL15_Valid(void) ...@@ -99,17 +103,20 @@ monitorlib_uint8_t Sys_Read_KL15_Valid(void)
monitorlib_uint8_t System_LINE_KL15(void) monitorlib_uint8_t System_LINE_KL15(void)
{ {
monitorlib_uint8_t u8KL15 = 0; static monitorlib_uint8_t u8KL15 = 0;
// if (RTE_GPIO_Get_Level(WAKEUP_KL15_In) == 1u )
// {
// u8KL15 = 1u;
// }
// else
// {
// u8KL15 = 0;
// }
if (Sys_Read_KL15_Voltage() >= 5500u )
{
u8KL15 = 1u;
}
else if((Sys_Read_KL15_Voltage() >= 5000u)&&(Sys_Read_KL15_Voltage() < 5500u))
{
;
}
else
{
u8KL15 = 0;
}
return u8KL15; return u8KL15;
} }
...@@ -125,33 +132,33 @@ void Sys_LogicProcess(void) ...@@ -125,33 +132,33 @@ void Sys_LogicProcess(void)
void Sys_KL30_Init(void) void Sys_KL30_Init(void)
{ {
MonitorExt_st m_st; MonitorExt_st m_st;
m_st.COM_Delay = Common_BlockDelay; m_st.COM_Delay = Common_BlockDelay;
m_st.SysGet_KL15Line = System_LINE_KL15; m_st.SysGet_KL15Line = System_LINE_KL15;
m_st.SysGet_KL15_Valid = Sys_Read_KL15_Valid; m_st.SysGet_KL15_Valid = Sys_Read_KL15_Valid;
m_st.SysGet_KL30_Valid = Sys_Read_KL30_Valid; m_st.SysGet_KL30_Valid = Sys_Read_KL30_Valid;
m_st.SysGet_KL15_value = Sys_Read_KL15_Voltage; m_st.SysGet_KL15_value = Sys_Read_KL15_Voltage;
m_st.SysGet_KL30_value = Sys_Read_KL30_Voltage; m_st.SysGet_KL30_value = Sys_Read_KL30_Voltage;
m_st.SysGet_KL15_value_Force = Sys_Read_KL15_Voltage_F; m_st.SysGet_KL15_value_Force = Sys_Read_KL15_Voltage_F;
m_st.SysGet_KL30_value_Force = Sys_Read_KL30_Voltage_F; m_st.SysGet_KL30_value_Force = Sys_Read_KL30_Voltage_F;
m_st.SysMonitorLogic = Sys_LogicProcess; m_st.SysMonitorLogic = Sys_LogicProcess;
System_Monitor_KL30Init();
Sys_Set_Pata(SysFun_Range, &m_st); Sys_Set_Pata(SysFun_Range, &m_st);
System_Monitor_KL30Init( );
} }
void Sys_WakeUp_Init(void) void Sys_WakeUp_Init(void)
{ {
MonitorExt_st m_st; MonitorExt_st m_st;
m_st.COM_Delay = Common_BlockDelay; m_st.COM_Delay = Common_BlockDelay;
m_st.SysGet_KL15Line = System_LINE_KL15; m_st.SysGet_KL15Line = System_LINE_KL15;
m_st.SysGet_KL15_Valid = Sys_Read_KL15_Valid; m_st.SysGet_KL15_Valid = Sys_Read_KL15_Valid;
m_st.SysGet_KL30_Valid = Sys_Read_KL30_Valid; m_st.SysGet_KL30_Valid = Sys_Read_KL30_Valid;
m_st.SysGet_KL15_value = Sys_Read_KL15_Voltage; m_st.SysGet_KL15_value = Sys_Read_KL15_Voltage;
m_st.SysGet_KL30_value = Sys_Read_KL30_Voltage; m_st.SysGet_KL30_value = Sys_Read_KL30_Voltage;
m_st.SysGet_KL15_value_Force = Sys_Read_KL15_Voltage_F; m_st.SysGet_KL15_value_Force = Sys_Read_KL15_Voltage_F;
m_st.SysGet_KL30_value_Force = Sys_Read_KL30_Voltage_F; m_st.SysGet_KL30_value_Force = Sys_Read_KL30_Voltage_F;
m_st.SysMonitorLogic = Sys_LogicProcess; m_st.SysMonitorLogic = Sys_LogicProcess;
System_Monitor_WakeupInit();
Sys_Set_Pata(SysFun_Range, &m_st); Sys_Set_Pata(SysFun_Range, &m_st);
System_Monitor_WakeupInit( );
} }
void Delay_ms(uint32_t u32Ms) void Delay_ms(uint32_t u32Ms)
...@@ -167,6 +174,6 @@ void Delay_ms(uint32_t u32Ms) ...@@ -167,6 +174,6 @@ void Delay_ms(uint32_t u32Ms)
__NOP(); __NOP();
__NOP(); __NOP();
} }
RTE_WDT_Clear(); WDT_Restart();
} }
} }
...@@ -4,5 +4,6 @@ ...@@ -4,5 +4,6 @@
void Sys_KL30_Init(void); void Sys_KL30_Init(void);
void Sys_WakeUp_Init(void); void Sys_WakeUp_Init(void);
monitorlib_uint16_t Sys_Read_KL15_Voltage(void);
#endif #endif
...@@ -36,8 +36,8 @@ ...@@ -36,8 +36,8 @@
//Tellib_uint8_t Tel_Mem [ Tel_MEM_Block_Size * LED_Max + Tel_MEM_Block_Addition ]; //Tellib_uint8_t Tel_Mem [ Tel_MEM_Block_Size * LED_Max + Tel_MEM_Block_Addition ];
//void Telltales_Init(void) // void Telltales_Init(void)
//{ // {
// TelExtPara m_ExtPara; // TelExtPara m_ExtPara;
// m_ExtPara.TotalLength = LED_Max; // m_ExtPara.TotalLength = LED_Max;
// m_ExtPara.LED_PowerOFF_TimerCbk = Common_GetIgnOffTime; // m_ExtPara.LED_PowerOFF_TimerCbk = Common_GetIgnOffTime;
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
// m_ExtPara.LED_PowerCbk = Common_Get_IG_Sts; // m_ExtPara.LED_PowerCbk = Common_Get_IG_Sts;
// u8CanId401Flag = 0; // u8CanId401Flag = 0;
// Telltales_KL30_Wakeup_Init(Tel_Mem, LED_Attribute, &m_ExtPara); // Telltales_KL30_Wakeup_Init(Tel_Mem, LED_Attribute, &m_ExtPara);
//} // }
//void Can_ID_401(uint8_t CopyData []) //void Can_ID_401(uint8_t CopyData [])
......
...@@ -17,8 +17,7 @@ ...@@ -17,8 +17,7 @@
//extern Tellib_uint8_t Auto_Start_Stop ; //extern Tellib_uint8_t Auto_Start_Stop ;
//void Telltales_Init(void); //void Telltales_Init(void);
//void Telltales_Auto_Start_Stop(void);
//void Telltales_Auto_Start_Stop_Setting(void);
//Tellib_uint8_t Telltales_Voltage_Date(void); //Tellib_uint8_t Telltales_Voltage_Date(void);
//#endif //#endif
...@@ -193,6 +193,9 @@ uint32_t RTE_UART_Init(UART_Channel_en_t enUARTCh, UART_Channel_Config_st_t *pen ...@@ -193,6 +193,9 @@ uint32_t RTE_UART_Init(UART_Channel_en_t enUARTCh, UART_Channel_Config_st_t *pen
stUART_InitStruct.bitorder = UART_Bit_LSB; stUART_InitStruct.bitorder = UART_Bit_LSB;
stUART_InitStruct.UART_Mode = UART_Mode_Rx | UART_Mode_Tx; //收发模式 stUART_InitStruct.UART_Mode = UART_Mode_Rx | UART_Mode_Tx; //收发模式
stUARTCh2Cfg.pfnUARTReadMsgCallBack = penUARTCfg->pfnUARTReadMsgCallBack;
ISR_Register(ST2_IRQn, UART_CH2_TX_ISR); //串口2发送中断服务路径注册 ISR_Register(ST2_IRQn, UART_CH2_TX_ISR); //串口2发送中断服务路径注册
ISR_Register(SR2_IRQn, UART_CH2_RX_ISR); //串口2接收中断服务路径注册 ISR_Register(SR2_IRQn, UART_CH2_RX_ISR); //串口2接收中断服务路径注册
break; break;
......
...@@ -14,6 +14,7 @@ void Sys_2ms_Tasks(void) ...@@ -14,6 +14,7 @@ void Sys_2ms_Tasks(void)
Common_Input_Para(); Common_Input_Para();
Sys_Status_Update_Service(); Sys_Status_Update_Service();
Analog_Signal_Conv_Service(); Analog_Signal_Conv_Service();
AMT630H_Main();
} }
void Sys_5ms_Tasks(void) void Sys_5ms_Tasks(void)
...@@ -28,7 +29,8 @@ void Sys_10ms_Tasks(void) ...@@ -28,7 +29,8 @@ void Sys_10ms_Tasks(void)
void Sys_20ms_Tasks(void) void Sys_20ms_Tasks(void)
{ {
Data_Vehicle_Speed_Processing_Service();
Data_Engine_Speed_Processing_Service();
} }
void Sys_50ms_Tasks(void) void Sys_50ms_Tasks(void)
...@@ -37,6 +39,7 @@ void Sys_50ms_Tasks(void) ...@@ -37,6 +39,7 @@ void Sys_50ms_Tasks(void)
} }
uint32_t g_u32LEDFlag = 0UL; uint32_t g_u32LEDFlag = 0UL;
//uint8_t ljsuartsend[2] = { 0x55, 0x66};
void Sys_100ms_Tasks(void) void Sys_100ms_Tasks(void)
{ {
if (g_u32LEDFlag) if (g_u32LEDFlag)
...@@ -50,8 +53,10 @@ void Sys_100ms_Tasks(void) ...@@ -50,8 +53,10 @@ void Sys_100ms_Tasks(void)
//RTE_GPIO_Set_Level(RTE_GPIO_ANALOG_PORT0_PIN15, 0x00U); //RTE_GPIO_Set_Level(RTE_GPIO_ANALOG_PORT0_PIN15, 0x00U);
} }
Fuel_Cal_Sevice(100u); Fuel_Cal_Sevice(100u);
RTE_GPIO_Set_Level(Blacklight_PWM, 1);
//UART_Ch2_Send_Multiple_Byte(ljsuartsend, 2);
} }
static uint16_t task_2ms = 0u;
void Sys_Exact_50us_Tasks(void) void Sys_Exact_50us_Tasks(void)
{ {
static uint32_t task_1ms = 0u; static uint32_t task_1ms = 0u;
...@@ -63,4 +68,11 @@ void Sys_Exact_50us_Tasks(void) ...@@ -63,4 +68,11 @@ void Sys_Exact_50us_Tasks(void)
task_1ms =0U; task_1ms =0U;
eeprom_1ms_timeCount( ); eeprom_1ms_timeCount( );
} }
task_2ms++;
if (task_2ms >= 40)
{
task_2ms = 0;
AMT630H_Timer(2);
}
} }
\ No newline at end of file
...@@ -58,23 +58,10 @@ void Sys_Startup_Pre_Init(void) ...@@ -58,23 +58,10 @@ void Sys_Startup_Pre_Init(void)
void Sys_Startup_Init(void) void Sys_Startup_Init(void)
{ {
uint8_t u8StartupMode = 0U; uint8_t u8StartupMode = 0U;
uint8_t test_uart_txbuf[5]={1,2,3,4,5};
UART_Channel_Config_st_t loc_config;
RTE_WDT_Enable(); RTE_WDT_Enable();
GenDelay_Init(RTE_WDT_Clear); GenDelay_Init(RTE_WDT_Clear);
RTE_GPIO_Init(); RTE_GPIO_Init();
Gpio_Init(Gpio_KL30_Init); Gpio_Init(Gpio_KL30_Init);
Analog_Signal_Conv_Init();
loc_config.u32UARTChEn = 1U;
loc_config.u32UARTbps = 115200U;
loc_config.pfnUARTConfirmCallBack = NULL;
loc_config.pfnUARTReadMsgCallBack = NULL;
RTE_UART_Init(UART_CH2, &loc_config);
//RTE_CAPTURE_KL30_Init();
Gen_TimeDelay(10000u, 50u); Gen_TimeDelay(10000u, 50u);
PwrMemInit( ); PwrMemInit( );
Power_Management_Init(u8StartupMode); Power_Management_Init(u8StartupMode);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment