添加读取赋码仪按键ke1 ,控制ledr,ledg 的功能
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -9,3 +9,5 @@ build_log.txt
|
||||
__pycache__/
|
||||
*.pid
|
||||
*.pkt
|
||||
*quest_info.txt
|
||||
RTE/_app/RTE_Components.h
|
||||
|
@@ -1,22 +0,0 @@
|
||||
|
||||
/*
|
||||
* Auto generated Run-Time-Environment Component Configuration File
|
||||
* *** Do not modify ! ***
|
||||
*
|
||||
* Project: 'checker_m4'
|
||||
* Target: 'app'
|
||||
*/
|
||||
|
||||
#ifndef RTE_COMPONENTS_H
|
||||
#define RTE_COMPONENTS_H
|
||||
|
||||
|
||||
/*
|
||||
* Define the Device Header File:
|
||||
*/
|
||||
#define CMSIS_device_header "stm32mp157dxx_cm4.h"
|
||||
|
||||
#define RTE_Compiler_IO_STDOUT /* Compiler I/O: STDOUT */
|
||||
#define RTE_Compiler_IO_STDOUT_User /* Compiler I/O: STDOUT Breakpoint */
|
||||
|
||||
#endif /* RTE_COMPONENTS_H */
|
@@ -8,3 +8,10 @@
|
||||
如果发现程序不能运行,检查RTE文件
|
||||
2023.7.14
|
||||
使用单线程方式执行命令
|
||||
2023.7.21
|
||||
屏蔽日志输出,解决控制电机会引发id读取回复的bug
|
||||
2023.8.2
|
||||
读取按键时,连续读取5次,5次都为相同时才触发
|
||||
添加build命令来获取编译时间
|
||||
2023.8.17
|
||||
添加读取赋码仪按键ke1 ,控制ledr,ledg 的功能
|
@@ -331,7 +331,7 @@
|
||||
|
||||
<Group>
|
||||
<GroupName>rtthread</GroupName>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
@@ -567,7 +567,7 @@
|
||||
|
||||
<Group>
|
||||
<GroupName>stm32lib</GroupName>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
@@ -979,7 +979,7 @@
|
||||
|
||||
<Group>
|
||||
<GroupName>interface</GroupName>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
@@ -1023,7 +1023,7 @@
|
||||
|
||||
<Group>
|
||||
<GroupName>dev</GroupName>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
@@ -1043,7 +1043,7 @@
|
||||
|
||||
<Group>
|
||||
<GroupName>soft</GroupName>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
@@ -1225,6 +1225,26 @@
|
||||
</File>
|
||||
</Group>
|
||||
|
||||
<Group>
|
||||
<GroupName>readme</GroupName>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>10</GroupNumber>
|
||||
<FileNumber>82</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>.\ReadMe.txt</PathWithFileName>
|
||||
<FilenameWithoutPath>ReadMe.txt</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
</Group>
|
||||
|
||||
<Group>
|
||||
<GroupName>::CMSIS</GroupName>
|
||||
<tvExp>0</tvExp>
|
||||
|
@@ -80,9 +80,9 @@
|
||||
<nStopB2X>0</nStopB2X>
|
||||
</BeforeMake>
|
||||
<AfterMake>
|
||||
<RunUserProg1>0</RunUserProg1>
|
||||
<RunUserProg1>1</RunUserProg1>
|
||||
<RunUserProg2>0</RunUserProg2>
|
||||
<UserProg1Name></UserProg1Name>
|
||||
<UserProg1Name>upload checker_m4 ./Objects/checker_m4.axf</UserProg1Name>
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
@@ -336,7 +336,7 @@
|
||||
<v6Rtti>0</v6Rtti>
|
||||
<VariousControls>
|
||||
<MiscControls></MiscControls>
|
||||
<Define>CORE_CM4,NO_ATOMIC_64_SUPPORT,USE_HAL_DRIVER,STM32MP157Dxx,METAL_INTERNAL,METAL_MAX_DEVICE_REGIONS=2,METAL_INTERNAL,VIRTIO_SLAVE_ONLY,__LOG_TRACE_IO_,RT_THREAD</Define>
|
||||
<Define>CORE_CM4,NO_ATOMIC_64_SUPPORT,USE_HAL_DRIVER,STM32MP157Dxx,METAL_INTERNAL,METAL_MAX_DEVICE_REGIONS=2,METAL_INTERNAL,VIRTIO_SLAVE_ONLY,RT_THREAD</Define>
|
||||
<Undefine></Undefine>
|
||||
<IncludePath>.\source\core;.\source\main;.\source\rt_thread;.\source\rt_thread\include;.\source\stm32lib\STM32MP1xx_HAL_Driver\Inc;.\source\stm32lib\CMSIS\Include;.\source\OpenAMP\open-amp\lib\include;.\source\OpenAMP\libmetal\lib\include;.\source\OpenAMP\virtual_driver;.\source\soft;.\source\task;.\source\dev</IncludePath>
|
||||
</VariousControls>
|
||||
@@ -1207,6 +1207,16 @@
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
<Group>
|
||||
<GroupName>readme</GroupName>
|
||||
<Files>
|
||||
<File>
|
||||
<FileName>ReadMe.txt</FileName>
|
||||
<FileType>5</FileType>
|
||||
<FilePath>.\ReadMe.txt</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
<Group>
|
||||
<GroupName>::CMSIS</GroupName>
|
||||
</Group>
|
||||
|
@@ -11,6 +11,8 @@ typedef struct{
|
||||
pwm_def *pwm;
|
||||
int key_old;
|
||||
int key;
|
||||
int key1_old;
|
||||
int key1;
|
||||
int sen;
|
||||
char str_buff[200];
|
||||
}mymain_def;
|
||||
@@ -42,6 +44,18 @@ void *mymain_init(void)
|
||||
HAL_GPIO_WritePin(GPIOF,GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9,GPIO_PIN_RESET);
|
||||
PERIPH_UNLOCK(GPIOF);
|
||||
|
||||
// ָʾ<D6B8><CABE>PF1(<28><>) PG15(<28><>)
|
||||
init.Pin = GPIO_PIN_1;
|
||||
PERIPH_LOCK(GPIOF);
|
||||
HAL_GPIO_Init(GPIOF, &init);
|
||||
HAL_GPIO_WritePin(GPIOF,GPIO_PIN_1,GPIO_PIN_RESET);
|
||||
PERIPH_UNLOCK(GPIOF);
|
||||
init.Pin = GPIO_PIN_15;
|
||||
PERIPH_LOCK(GPIOG);
|
||||
HAL_GPIO_Init(GPIOG, &init);
|
||||
HAL_GPIO_WritePin(GPIOG,GPIO_PIN_15,GPIO_PIN_RESET);
|
||||
PERIPH_UNLOCK(GPIOG);
|
||||
|
||||
|
||||
// <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
init.Mode = GPIO_MODE_INPUT;
|
||||
@@ -52,12 +66,18 @@ void *mymain_init(void)
|
||||
PERIPH_UNLOCK(GPIOI);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
// PG3 key2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>
|
||||
// PH7 key1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>
|
||||
init.Mode = GPIO_MODE_INPUT;
|
||||
init.Pull = GPIO_NOPULL;
|
||||
init.Pin = GPIO_PIN_3;
|
||||
PERIPH_LOCK(GPIOG);
|
||||
HAL_GPIO_Init(GPIOG, &init);
|
||||
PERIPH_UNLOCK(GPIOG);
|
||||
init.Pin = GPIO_PIN_7;
|
||||
PERIPH_LOCK(GPIOH);
|
||||
HAL_GPIO_Init(GPIOH, &init);
|
||||
PERIPH_UNLOCK(GPIOH);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
init.Mode = GPIO_MODE_INPUT;
|
||||
@@ -91,6 +111,22 @@ void out_set(int index,int power)
|
||||
send_str_to_a7(m->str_buff);
|
||||
}
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>ledr
|
||||
void ledr_set(int power)
|
||||
{
|
||||
PERIPH_LOCK(GPIOG);
|
||||
HAL_GPIO_WritePin(GPIOG,1<<15,power?GPIO_PIN_SET:GPIO_PIN_RESET);
|
||||
PERIPH_UNLOCK(GPIOG);
|
||||
send_str_to_a7("ledr seted");
|
||||
}
|
||||
// <20><><EFBFBD><EFBFBD>ledg
|
||||
void ledg_set(int power)
|
||||
{
|
||||
PERIPH_LOCK(GPIOF);
|
||||
HAL_GPIO_WritePin(GPIOF,1<<1,power?GPIO_PIN_SET:GPIO_PIN_RESET);
|
||||
PERIPH_UNLOCK(GPIOF);
|
||||
send_str_to_a7("ledg seted");
|
||||
}
|
||||
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -176,6 +212,44 @@ static int str_ainttoi(const char *s)
|
||||
|
||||
|
||||
|
||||
int read_key(void *mymain)
|
||||
{
|
||||
mymain_def *m=mymain;
|
||||
int key=0,key2=0;
|
||||
key=HAL_GPIO_ReadPin(GPIOG,1<<3);
|
||||
if(key!=m->key_old)
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD>5<EFBFBD>Σ<EFBFBD><CEA3><EFBFBD>Ϊ<EFBFBD>෴<EFBFBD><E0B7B4>ƽʱ<C6BD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>ƽ
|
||||
for(int i=0;i<2;i++)
|
||||
{
|
||||
delay_ms(20);
|
||||
key2=HAL_GPIO_ReadPin(GPIOG,1<<3);
|
||||
if(key!=key2) return key2;
|
||||
}
|
||||
return key;
|
||||
}
|
||||
return m->key_old;
|
||||
|
||||
}
|
||||
int read_key1(void *mymain)
|
||||
{
|
||||
mymain_def *m=mymain;
|
||||
int key=0,key2=0;
|
||||
key=HAL_GPIO_ReadPin(GPIOH,1<<7);
|
||||
if(key!=m->key1_old)
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD>5<EFBFBD>Σ<EFBFBD><CEA3><EFBFBD>Ϊ<EFBFBD>෴<EFBFBD><E0B7B4>ƽʱ<C6BD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>ƽ
|
||||
for(int i=0;i<2;i++)
|
||||
{
|
||||
delay_ms(20);
|
||||
key2=HAL_GPIO_ReadPin(GPIOH,1<<7);
|
||||
if(key!=key2) return key2;
|
||||
}
|
||||
return key;
|
||||
}
|
||||
return m->key1_old;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -183,7 +257,8 @@ static int str_ainttoi(const char *s)
|
||||
void mymain_scan(void *mymain)
|
||||
{
|
||||
mymain_def *m=mymain;
|
||||
m->key=HAL_GPIO_ReadPin(GPIOG,1<<3);
|
||||
m->key=read_key(mymain);
|
||||
m->key1=read_key1(mymain);
|
||||
m->sen=HAL_GPIO_ReadPin(GPIOI,1<<6);
|
||||
if(m->key_old!=m->key){
|
||||
if(m->key==RESET)
|
||||
@@ -195,6 +270,16 @@ void mymain_scan(void *mymain)
|
||||
}
|
||||
m->key_old=m->key;
|
||||
}
|
||||
if(m->key1_old!=m->key1){
|
||||
if(m->key1==RESET)
|
||||
{
|
||||
send_str_to_a7("ke1 press");
|
||||
}else
|
||||
{
|
||||
send_str_to_a7("ke1 up");
|
||||
}
|
||||
m->key1_old=m->key1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -211,6 +296,7 @@ int read_sw(void *mymain)
|
||||
|
||||
|
||||
|
||||
|
||||
void mymain_loop(void *mymain,char *cmd_str)
|
||||
{
|
||||
mymain_def *m=mymain;
|
||||
@@ -219,7 +305,6 @@ void mymain_loop(void *mymain,char *cmd_str)
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>½<EFBFBD>
|
||||
int count=str_ainttoi(cmd_str+6);
|
||||
if(count!=0){
|
||||
send_str_to_a7(m->str_buff);
|
||||
moter_run(0,count);
|
||||
if(count>0){
|
||||
send_str_to_a7("moter down");
|
||||
@@ -252,6 +337,12 @@ void mymain_loop(void *mymain,char *cmd_str)
|
||||
else
|
||||
send_str_to_a7("key press");
|
||||
}
|
||||
else if(strncmp(cmd_str,"readke1",7)==0){
|
||||
if(m->key1)
|
||||
send_str_to_a7("ke1 up");
|
||||
else
|
||||
send_str_to_a7("ke1 press");
|
||||
}
|
||||
else if(strncmp(cmd_str,"readsen",7)==0){
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
if(m->sen)
|
||||
@@ -268,6 +359,25 @@ void mymain_loop(void *mymain,char *cmd_str)
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(strncmp(cmd_str,"ledr",4)==0){
|
||||
if(strncmp(cmd_str+5,"on",2)==0){
|
||||
ledr_set(1);
|
||||
}else{
|
||||
ledr_set(0);
|
||||
}
|
||||
}
|
||||
else if(strncmp(cmd_str,"ledg",4)==0){
|
||||
if(strncmp(cmd_str+5,"on",2)==0){
|
||||
ledg_set(1);
|
||||
}else{
|
||||
ledg_set(0);
|
||||
}
|
||||
}
|
||||
else if(strncmp(cmd_str,"build",5)==0){
|
||||
send_str_to_a7("buildtime: " __DATE__ " " __TIME__);
|
||||
}else{
|
||||
send_str_to_a7("unknown cmd");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@@ -87,3 +87,16 @@ void rt_hw_us_delay(rt_uint32_t us)
|
||||
delay_us(us);
|
||||
}
|
||||
|
||||
|
||||
void delay_ms(uint32_t ms)
|
||||
{
|
||||
for(int i=0;i<ms;i++)
|
||||
{
|
||||
delay_us(1000);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@@ -12,7 +12,7 @@ int delay_init(void);
|
||||
|
||||
void delay_us(uint32_t us);
|
||||
|
||||
|
||||
void delay_ms(uint32_t ms);
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user