Warning
This page is located in archive.

9. Blikání LED v assembleru

Cíle cvičení

  1. Seznámit se s instrukční sadou
  2. Seznámit se se zápisem programu v assembleru
  3. Vytvořit program v assembleru, který bude blikat s LED2 na nucleu nebo s jinou LED na rozšiřujícím kitu
  4. Ověřit funkčnost ostatních instrukcí, např. BL, AND, OR, EOR, LSR, LSL, …

Co je třeba si připravit

  1. Prostudovat instrukční sadu od strany 50 nebo alespoň sekci Vybraná instrukční sada pro STM32
  2. Zopakovat si práci s registry RCC, GPIOx mikrokontroléru STM32F401 v referenčním manuálu a předchozího cvičení
  3. Prostudovat příklad blikání s LED v assembleru v sekci příkladů: 01 - GPIO LED

Podklady pro cvičení

Kódy pro cvičení

  .global main_asm
 
  .equ  	RCC_BASE,		0x40023800
  .equ		RCC_AHB1ENR_OFFSET,	0x30
  .equ		RCC_AHB1ENR_GPIOA_EN,	0x0001
 
  .equ		GPIO_BASE,		0x40020000
  .equ		GPIO_MODER_OFFSET,	0x00
  .equ		GPIOA_ODR_OFFSET,	0x0014
  .equ		GPIOA_MODER_OUTPUT_PA5,	0x0400
  .equ		GPIOA_ODR_PA5,		0x0020
 
  .equ		DELAY_MS,		500
  .equ		COUNT_1MS,		5332
 
@ ----------------------------
delay_function:
	bx lr
 
@ ----------------------------
blink_led:
	bx lr
 
@ ----------------------------
init_function:
	bx	lr
 
@ ----------------------------
main_asm:
	bl init_function
 
loop:
	bl delay_function
	bl blink_led
 
	b loop

courses/b2m37mam/labs/09.txt · Last modified: 2023/11/22 21:55 by nentvond