Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static void encoder_task(void *pvParameters);
- static void encoder_task(void *pvParameters)
- {
- uint8_t state=0;
- //maszyna stanow pokretla zalezna od pinow Encoder_left i Encoder_right
- uint8_t state_sw=0;
- //state_sw=0 --- przycisk zwolniony
- //state_sw=1 --- przycisk wcisniety
- uint8_t obrot=0;
- //obrot=0 --- obrot w lewo
- //obrot=1 --- obrot w prawo
- // {tymczasowo} przyciski SW na plytce
- // 0 -> przycisk zwolniony
- // 1 -> przycisk wcisniety
- uint8_t state_sw1=0;
- uint8_t state_sw2=0;
- for( ;; )
- {
- vTaskDelay(1);
- //////////////////////////////////
- // obsluga przycisku enkodera
- //////////////////////////////////
- if (HAL_GPIO_ReadPin(ENCODER_SW_Port,ENCODER_SW)==0)
- {
- vTaskDelay(60/portTICK_RATE_MS);
- if (HAL_GPIO_ReadPin(ENCODER_SW_Port,ENCODER_SW)==0)
- {
- if (state_sw==0)
- {
- state_sw=1;
- xSemaphoreGive(encoder_sw);
- }
- }
- }
- else
- state_sw=0;
- ///////////////////////////////////////////////////////
- // //////////////////////////////////////////////////////
- // //{tymczasowo} oblsuga przyciskow SW3 SW4 na plytce
- // /////////////////////////////////////////////////////
- // if (HAL_GPIO_ReadPin(SW_PORT,SW1_pin)==0)
- // {
- // vTaskDelay(60/portTICK_RATE_MS);
- // if (HAL_GPIO_ReadPin(SW_PORT,SW1_pin)==0)
- // {
- // if (state_sw1==0)
- // {
- // state_sw1=1;
- // obrot=0;
- // HAL_GPIO_TogglePin(LED_1_GPIO_Port, LED_1_Pin);
- // xQueueSendToBack(obrot_queue,(void*)&obrot,( TickType_t ) 0);
- // }
- // }
- // }
- // else
- // state_sw1=0;
- // ///////////////////////////////////////////
- // if (HAL_GPIO_ReadPin(SW_PORT,SW2_pin)==0)
- // {
- // vTaskDelay(60/portTICK_RATE_MS);
- // if (HAL_GPIO_ReadPin(SW_PORT,SW2_pin)==0)
- // {
- // if (state_sw2==0)
- // {
- // state_sw2=1;
- // obrot=1;
- // HAL_GPIO_TogglePin(LED_2_GPIO_Port, LED_2_Pin);
- // xQueueSendToBack(obrot_queue,(void*)&obrot,( TickType_t ) 0);
- // }
- // }
- // }
- // else
- // state_sw2=0;
- // ///////////////////////////////////////////////////////
- ///////////////////////////////////////////////
- //oblsuga pokretla - cos nie dziala jak powinno
- /////////////////////////////////////////////
- switch (state)
- {
- case 0: //00
- if (HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_LEFT)==0&&HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_RIGHT)==0)
- state=0;
- if (HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_LEFT)==1&&HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_RIGHT)==0)
- state=1;
- // if (HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_LEFT)==1&&HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_RIGHT)==1)
- // state=0;
- if (HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_LEFT)==0&&HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_RIGHT)==1)
- state=4;
- break;
- case 1: //00->10
- if (HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_LEFT)==1&&HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_RIGHT)==0)
- state=1;
- if (HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_LEFT)==1&&HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_RIGHT)==1)
- state=2;
- if (HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_LEFT)==0&&HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_RIGHT)==0)
- state=0;
- break;
- case 2: //10->11
- if (HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_LEFT)==1&&HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_RIGHT)==1)
- state=2;
- if (HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_LEFT)==0&&HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_RIGHT)==1)
- state=3;
- if (HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_LEFT)==1&&HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_RIGHT)==0)
- state=1;
- if (HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_LEFT)==0&&HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_RIGHT)==0)
- state=0;
- break;
- case 3: //11->01
- if (HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_LEFT)==0&&HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_RIGHT)==1)
- state=3;
- if (HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_LEFT)==0&&HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_RIGHT)==0)
- {
- state=0;
- obrot=0;
- HAL_GPIO_TogglePin(LED_2_GPIO_Port, LED_2_Pin);
- xQueueSendToBack(obrot_queue,(void*)&obrot,( TickType_t ) 0);
- }
- if (HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_LEFT)==1&&HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_RIGHT)==1)
- state=2;
- break;
- case 4:
- if (HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_LEFT)==0&&HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_RIGHT)==1)
- state=4;
- if (HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_LEFT)==1&&HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_RIGHT)==1)
- state=5;
- if (HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_LEFT)==0&&HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_RIGHT)==0)
- state=0;
- break;
- case 5:
- if (HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_LEFT)==1&&HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_RIGHT)==1)
- state=5;
- if (HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_LEFT)==1&&HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_RIGHT)==0)
- state=6;
- if (HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_LEFT)==0&&HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_RIGHT)==1)
- state=4;
- if (HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_LEFT)==0&&HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_RIGHT)==0)
- state=0;
- break;
- case 6:
- if (HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_LEFT)==1&&HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_RIGHT)==0)
- state=6;
- if (HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_LEFT)==1&&HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_RIGHT)==1)
- state=5;
- if (HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_LEFT)==0&&HAL_GPIO_ReadPin(ENCODER_ROT_PORT,ENCODER_RIGHT)==0)
- {
- state=0;
- obrot=1;
- HAL_GPIO_TogglePin(LED_1_GPIO_Port, LED_1_Pin);
- xQueueSendToBack(obrot_queue,(void*)&obrot,( TickType_t ) 0);
- }
- break;
- }
- }
- }
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement