cortex-m4 시뮬레이션
보통 타겟보드에 직접 구현하기 전 시뮬레이션을 하지만
직접 실습 후 복습 차원으로 시뮬레이션을 진행했다
언제 어디서든 간편하게 시간과 공간의 제약 받지않고
타겟보드와 부품이 없더라도 실제와 똑같이 동작하는 것을 볼 수 있다
타이머를 이용해서 시간 표시하기
stm32cubeide를 이용해서 프로젝트 만들기
stm43f401re를 선택해서 프로젝트를 만든다
LCD를 이용해서 시간을 표시할 것이기 때문에
PC0~7 PB0~2를 output으로 설정하고
TIM2를 사용한다
clock 설정하기
htim2.Init.Prescaler = 72000-1;
htim2.Init.Period = 1000-1;
prescaler와 period는 다음과 같이 설정해서 1초를 주기로 리셋
주요 코드
int i = 0;
int t=19;
char a[100];
int sec=50;
HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef* htim)
{
i++;
}
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_TIM2_Init();
HAL_TIM_Base_Start_IT(&htim2);
Init_lcd();
MX_GPIO_Init();
lcd_clrscr();
while (1)
{
sprintf(a,"%2dm :%2ds ",t,sec+i);
if(sec+i==60)
{
sec=0;
t++;
i=0;
}
lcd_print(0,0,a);
}
}
(19분 50초를 초기값으로 설정하고 10초 후 20분 00초가 되는 것을 보기 위한 코드)
hex 파일 설정
시뮬레이션을 위해 hex 파일이 필요
시뮬레이션
부품 배치후
hex 파일 선택
초기값
다음과 같이 변화