new traffic light code. walk signal works

This commit is contained in:
2025-09-21 01:26:23 -05:00
parent e698ea0bd9
commit 177fca8b4e
229 changed files with 47128 additions and 19400 deletions

View File

@@ -219,4 +219,5 @@
<autodiscovery enabled="false" problemReportingEnabled="true" selectedProfileId=""/>
</scannerConfigBuildInfo>
</storageModule>
<storageModule moduleId="refreshScope"/>
</cproject>

View File

@@ -8,6 +8,8 @@
#ifndef INC_BREADBOARD_H_
#define INC_BREADBOARD_H_
void breadboard(int);
void starttick(void);
void trafflight(int, int);
#endif /* INC_BREADBOARD_H_ */

View File

@@ -63,6 +63,8 @@ void Error_Handler(void);
#define YellowLight_GPIO_Port GPIOE
#define GreenLight_Pin GPIO_PIN_4
#define GreenLight_GPIO_Port GPIOE
#define WalkLight_Pin GPIO_PIN_5
#define WalkLight_GPIO_Port GPIOE
#define PC14_OSC32_IN_Pin GPIO_PIN_14
#define PC14_OSC32_IN_GPIO_Port GPIOC
#define PC15_OSC32_OUT_Pin GPIO_PIN_15

View File

@@ -18,6 +18,10 @@
* RedLight: PE2
* YellowLight: PE3
* GreenLight: PE4
* WalkLight: PE5
*
* Done: Traffic Light
* TODO: Light Dimmer
*/
#include "main.h"
@@ -26,30 +30,53 @@
#define R_Pin RedLight_Pin
#define Y_Pin YellowLight_Pin
#define G_Pin GreenLight_Pin
#define W_Pin WalkLight_Pin
#define R_Prt RedLight_GPIO_Port
#define Y_Prt YellowLight_GPIO_Port
#define G_Prt GreenLight_GPIO_Port
#define W_Prt WalkLight_GPIO_Port
uint32_t trafftick_last;
uint32_t walktick_last;
uint8_t trafflight_index = 0;
void
breadboard(int traffSPD)
starttick(void)
{
// Traffic Light
HAL_GPIO_TogglePin(R_Prt, R_Pin);
HAL_Delay(traffSPD);
HAL_GPIO_TogglePin(R_Prt, R_Pin);
HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
HAL_Delay(traffSPD);
HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
HAL_GPIO_TogglePin(G_Prt, G_Pin);
HAL_Delay(traffSPD);
HAL_GPIO_TogglePin(G_Prt, G_Pin);
// Walk signal
// Light dimmer
trafftick_last = HAL_GetTick();
walktick_last = HAL_GetTick();
}
void
trafflight(int traffSPD, int walkSPD)
{
uint32_t trafftick_curr = HAL_GetTick();
if ((trafftick_curr - trafftick_last) >= traffSPD) {
HAL_GPIO_WritePin(R_Prt, R_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(Y_Prt, Y_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(G_Prt, G_Pin, GPIO_PIN_RESET);
switch (trafflight_index) {
case 0:
HAL_GPIO_WritePin(R_Prt, R_Pin, GPIO_PIN_SET);
break;
case 1:
HAL_GPIO_WritePin(Y_Prt, Y_Pin, GPIO_PIN_SET);
break;
case 2:
HAL_GPIO_WritePin(G_Prt, G_Pin, GPIO_PIN_SET);
break;
}
trafflight_index = (trafflight_index + 1) % 3;
trafftick_last = trafftick_curr;
}
if ((trafftick_curr - walktick_last) >= walkSPD) {
HAL_GPIO_TogglePin(W_Prt, W_Pin);
walktick_last = trafftick_curr;
}
}

View File

@@ -159,9 +159,10 @@ int main(void)
/* Infinite loop */
/* USER CODE BEGIN WHILE */
starttick();
while (1)
{
breadboard(333);
trafflight(2*1000, 10*1000);
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
@@ -574,7 +575,7 @@ static void MX_GPIO_Init(void)
__HAL_RCC_GPIOD_CLK_ENABLE();
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOE, RedLight_Pin|YellowLight_Pin|GreenLight_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOE, RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOC, NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin, GPIO_PIN_RESET);
@@ -588,8 +589,8 @@ static void MX_GPIO_Init(void)
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOG, LD3_Pin|LD4_Pin, GPIO_PIN_RESET);
/*Configure GPIO pins : RedLight_Pin YellowLight_Pin GreenLight_Pin */
GPIO_InitStruct.Pin = RedLight_Pin|YellowLight_Pin|GreenLight_Pin;
/*Configure GPIO pins : RedLight_Pin YellowLight_Pin GreenLight_Pin WalkLight_Pin */
GPIO_InitStruct.Pin = RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;

View File

@@ -1 +1,2 @@
../Core/Src/breadboard.c:36:1:breadboard 1
../Core/Src/breadboard.c:46:1:starttick 1
../Core/Src/breadboard.c:53:1:trafflight 7

View File

@@ -1 +1,2 @@
../Core/Src/breadboard.c:36:1:breadboard 16 static
../Core/Src/breadboard.c:46:1:starttick 8 static
../Core/Src/breadboard.c:53:1:trafflight 24 static

View File

@@ -1,14 +1,14 @@
../Core/Src/main.c:93:5:main 1
../Core/Src/main.c:176:6:SystemClock_Config 3
../Core/Src/main.c:222:13:MX_CRC_Init 2
../Core/Src/main.c:248:13:MX_DMA2D_Init 3
../Core/Src/main.c:285:13:MX_I2C3_Init 4
../Core/Src/main.c:333:13:MX_LTDC_Init 3
../Core/Src/main.c:395:13:MX_SPI5_Init 2
../Core/Src/main.c:433:13:MX_TIM1_Init 4
../Core/Src/main.c:479:13:MX_USART1_UART_Init 2
../Core/Src/main.c:508:13:MX_FMC_Init 2
../Core/Src/main.c:559:13:MX_GPIO_Init 1
../Core/Src/main.c:666:6:StartDefaultTask 1
../Core/Src/main.c:687:6:HAL_TIM_PeriodElapsedCallback 2
../Core/Src/main.c:705:6:Error_Handler 1
../Core/Src/main.c:177:6:SystemClock_Config 3
../Core/Src/main.c:223:13:MX_CRC_Init 2
../Core/Src/main.c:249:13:MX_DMA2D_Init 3
../Core/Src/main.c:286:13:MX_I2C3_Init 4
../Core/Src/main.c:334:13:MX_LTDC_Init 3
../Core/Src/main.c:396:13:MX_SPI5_Init 2
../Core/Src/main.c:434:13:MX_TIM1_Init 4
../Core/Src/main.c:480:13:MX_USART1_UART_Init 2
../Core/Src/main.c:509:13:MX_FMC_Init 2
../Core/Src/main.c:560:13:MX_GPIO_Init 1
../Core/Src/main.c:667:6:StartDefaultTask 1
../Core/Src/main.c:688:6:HAL_TIM_PeriodElapsedCallback 2
../Core/Src/main.c:706:6:Error_Handler 1

View File

@@ -1,14 +1,14 @@
../Core/Src/main.c:93:5:main 8 static
../Core/Src/main.c:176:6:SystemClock_Config 88 static
../Core/Src/main.c:222:13:MX_CRC_Init 8 static
../Core/Src/main.c:248:13:MX_DMA2D_Init 8 static
../Core/Src/main.c:285:13:MX_I2C3_Init 8 static
../Core/Src/main.c:333:13:MX_LTDC_Init 64 static
../Core/Src/main.c:395:13:MX_SPI5_Init 8 static
../Core/Src/main.c:433:13:MX_TIM1_Init 32 static
../Core/Src/main.c:479:13:MX_USART1_UART_Init 8 static
../Core/Src/main.c:508:13:MX_FMC_Init 40 static
../Core/Src/main.c:559:13:MX_GPIO_Init 64 static
../Core/Src/main.c:666:6:StartDefaultTask 16 static
../Core/Src/main.c:687:6:HAL_TIM_PeriodElapsedCallback 16 static
../Core/Src/main.c:705:6:Error_Handler 4 static,ignoring_inline_asm
../Core/Src/main.c:177:6:SystemClock_Config 88 static
../Core/Src/main.c:223:13:MX_CRC_Init 8 static
../Core/Src/main.c:249:13:MX_DMA2D_Init 8 static
../Core/Src/main.c:286:13:MX_I2C3_Init 8 static
../Core/Src/main.c:334:13:MX_LTDC_Init 64 static
../Core/Src/main.c:396:13:MX_SPI5_Init 8 static
../Core/Src/main.c:434:13:MX_TIM1_Init 32 static
../Core/Src/main.c:480:13:MX_USART1_UART_Init 8 static
../Core/Src/main.c:509:13:MX_FMC_Init 40 static
../Core/Src/main.c:560:13:MX_GPIO_Init 64 static
../Core/Src/main.c:667:6:StartDefaultTask 16 static
../Core/Src/main.c:688:6:HAL_TIM_PeriodElapsedCallback 16 static
../Core/Src/main.c:706:6:Error_Handler 4 static,ignoring_inline_asm

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -68,106 +68,107 @@ Mcu.Name=STM32F429ZITx
Mcu.Package=LQFP144
Mcu.Pin0=PE2
Mcu.Pin1=PE3
Mcu.Pin10=PF5
Mcu.Pin100=VP_USB_HOST_VS_USB_HOST_CDC_HS
Mcu.Pin11=PF7
Mcu.Pin12=PF8
Mcu.Pin13=PF9
Mcu.Pin14=PF10
Mcu.Pin15=PH0/OSC_IN
Mcu.Pin16=PH1/OSC_OUT
Mcu.Pin17=PC0
Mcu.Pin18=PC1
Mcu.Pin19=PC2
Mcu.Pin10=PF4
Mcu.Pin100=VP_TIM1_VS_ClockSourceINT
Mcu.Pin101=VP_USB_HOST_VS_USB_HOST_CDC_HS
Mcu.Pin11=PF5
Mcu.Pin12=PF7
Mcu.Pin13=PF8
Mcu.Pin14=PF9
Mcu.Pin15=PF10
Mcu.Pin16=PH0/OSC_IN
Mcu.Pin17=PH1/OSC_OUT
Mcu.Pin18=PC0
Mcu.Pin19=PC1
Mcu.Pin2=PE4
Mcu.Pin20=PA0/WKUP
Mcu.Pin21=PA1
Mcu.Pin22=PA2
Mcu.Pin23=PA3
Mcu.Pin24=PA4
Mcu.Pin25=PA6
Mcu.Pin26=PA7
Mcu.Pin27=PC4
Mcu.Pin28=PC5
Mcu.Pin29=PB0
Mcu.Pin3=PC14/OSC32_IN
Mcu.Pin30=PB1
Mcu.Pin31=PB2/BOOT1
Mcu.Pin32=PF11
Mcu.Pin33=PF12
Mcu.Pin34=PF13
Mcu.Pin35=PF14
Mcu.Pin36=PF15
Mcu.Pin37=PG0
Mcu.Pin38=PG1
Mcu.Pin39=PE7
Mcu.Pin4=PC15/OSC32_OUT
Mcu.Pin40=PE8
Mcu.Pin41=PE9
Mcu.Pin42=PE10
Mcu.Pin43=PE11
Mcu.Pin44=PE12
Mcu.Pin45=PE13
Mcu.Pin46=PE14
Mcu.Pin47=PE15
Mcu.Pin48=PB10
Mcu.Pin49=PB11
Mcu.Pin5=PF0
Mcu.Pin50=PB12
Mcu.Pin51=PB13
Mcu.Pin52=PB14
Mcu.Pin53=PB15
Mcu.Pin54=PD8
Mcu.Pin55=PD9
Mcu.Pin56=PD10
Mcu.Pin57=PD11
Mcu.Pin58=PD12
Mcu.Pin59=PD13
Mcu.Pin6=PF1
Mcu.Pin60=PD14
Mcu.Pin61=PD15
Mcu.Pin62=PG4
Mcu.Pin63=PG5
Mcu.Pin64=PG6
Mcu.Pin65=PG7
Mcu.Pin66=PG8
Mcu.Pin67=PC6
Mcu.Pin68=PC7
Mcu.Pin69=PC9
Mcu.Pin7=PF2
Mcu.Pin70=PA8
Mcu.Pin71=PA9
Mcu.Pin72=PA10
Mcu.Pin73=PA11
Mcu.Pin74=PA12
Mcu.Pin75=PA13
Mcu.Pin76=PA14
Mcu.Pin77=PA15
Mcu.Pin78=PC10
Mcu.Pin79=PD0
Mcu.Pin8=PF3
Mcu.Pin80=PD1
Mcu.Pin81=PD3
Mcu.Pin82=PD6
Mcu.Pin83=PG10
Mcu.Pin84=PG11
Mcu.Pin85=PG12
Mcu.Pin86=PG13
Mcu.Pin87=PG14
Mcu.Pin88=PG15
Mcu.Pin89=PB5
Mcu.Pin9=PF4
Mcu.Pin90=PB6
Mcu.Pin91=PB8
Mcu.Pin92=PB9
Mcu.Pin93=PE0
Mcu.Pin94=PE1
Mcu.Pin95=VP_CRC_VS_CRC
Mcu.Pin96=VP_DMA2D_VS_DMA2D
Mcu.Pin97=VP_FREERTOS_VS_CMSIS_V1
Mcu.Pin98=VP_SYS_VS_tim6
Mcu.Pin99=VP_TIM1_VS_ClockSourceINT
Mcu.PinsNb=101
Mcu.Pin20=PC2
Mcu.Pin21=PA0/WKUP
Mcu.Pin22=PA1
Mcu.Pin23=PA2
Mcu.Pin24=PA3
Mcu.Pin25=PA4
Mcu.Pin26=PA6
Mcu.Pin27=PA7
Mcu.Pin28=PC4
Mcu.Pin29=PC5
Mcu.Pin3=PE5
Mcu.Pin30=PB0
Mcu.Pin31=PB1
Mcu.Pin32=PB2/BOOT1
Mcu.Pin33=PF11
Mcu.Pin34=PF12
Mcu.Pin35=PF13
Mcu.Pin36=PF14
Mcu.Pin37=PF15
Mcu.Pin38=PG0
Mcu.Pin39=PG1
Mcu.Pin4=PC14/OSC32_IN
Mcu.Pin40=PE7
Mcu.Pin41=PE8
Mcu.Pin42=PE9
Mcu.Pin43=PE10
Mcu.Pin44=PE11
Mcu.Pin45=PE12
Mcu.Pin46=PE13
Mcu.Pin47=PE14
Mcu.Pin48=PE15
Mcu.Pin49=PB10
Mcu.Pin5=PC15/OSC32_OUT
Mcu.Pin50=PB11
Mcu.Pin51=PB12
Mcu.Pin52=PB13
Mcu.Pin53=PB14
Mcu.Pin54=PB15
Mcu.Pin55=PD8
Mcu.Pin56=PD9
Mcu.Pin57=PD10
Mcu.Pin58=PD11
Mcu.Pin59=PD12
Mcu.Pin6=PF0
Mcu.Pin60=PD13
Mcu.Pin61=PD14
Mcu.Pin62=PD15
Mcu.Pin63=PG4
Mcu.Pin64=PG5
Mcu.Pin65=PG6
Mcu.Pin66=PG7
Mcu.Pin67=PG8
Mcu.Pin68=PC6
Mcu.Pin69=PC7
Mcu.Pin7=PF1
Mcu.Pin70=PC9
Mcu.Pin71=PA8
Mcu.Pin72=PA9
Mcu.Pin73=PA10
Mcu.Pin74=PA11
Mcu.Pin75=PA12
Mcu.Pin76=PA13
Mcu.Pin77=PA14
Mcu.Pin78=PA15
Mcu.Pin79=PC10
Mcu.Pin8=PF2
Mcu.Pin80=PD0
Mcu.Pin81=PD1
Mcu.Pin82=PD3
Mcu.Pin83=PD6
Mcu.Pin84=PG10
Mcu.Pin85=PG11
Mcu.Pin86=PG12
Mcu.Pin87=PG13
Mcu.Pin88=PG14
Mcu.Pin89=PG15
Mcu.Pin9=PF3
Mcu.Pin90=PB5
Mcu.Pin91=PB6
Mcu.Pin92=PB8
Mcu.Pin93=PB9
Mcu.Pin94=PE0
Mcu.Pin95=PE1
Mcu.Pin96=VP_CRC_VS_CRC
Mcu.Pin97=VP_DMA2D_VS_DMA2D
Mcu.Pin98=VP_FREERTOS_VS_CMSIS_V1
Mcu.Pin99=VP_SYS_VS_tim6
Mcu.PinsNb=102
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
Mcu.UserName=STM32F429ZITx
@@ -618,6 +619,10 @@ PE4.GPIOParameters=GPIO_Label
PE4.GPIO_Label=GreenLight
PE4.Locked=true
PE4.Signal=GPIO_Output
PE5.GPIOParameters=GPIO_Label
PE5.GPIO_Label=WalkLight
PE5.Locked=true
PE5.Signal=GPIO_Output
PE7.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
PE7.GPIO_Label=D4
PE7.GPIO_Mode=GPIO_MODE_AF_PP