Cortex-m4 with Proteus8 #1

천동민·2023년 6월 11일
0
post-custom-banner

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 파일 선택


초기값

다음과 같이 변화

post-custom-banner

0개의 댓글