Seongbin Lim
/
sb_first_project
This is a very simple guide, reviewing the steps required to get Blinky working on an Mbed OS platform.
Diff: main.cpp
- Revision:
- 113:be6b329fe2d5
- Parent:
- 112:5a7629ace1c4
- Child:
- 114:376a5998ecf4
--- a/main.cpp Thu Apr 09 09:32:04 2020 +0000 +++ b/main.cpp Mon Apr 13 09:56:56 2020 +0000 @@ -1,78 +1,20 @@ #include "mbed.h" - -int interval; - -void led2_init(void); -void button_init(void); -void led2_toggle(void); - -void button_Handler(void); - +RawSerial pc(PA_2, PA_3, 115200); // USART2 int main() { - led2_init(); - button_init(); - - NVIC_SetVector(EXTI15_10_IRQn,(uint32_t)button_Handler); - - interval = 500; - + pc.printf("\r\n Welcome to UART Lab_2_1!\r\n"); + pc.printf("Enter characters..\r\n"); + while(true) { - led2_toggle(); - - ThisThread::sleep_for(interval); - } -} -void led2_init(void) { - __HAL_RCC_GPIOA_CLK_ENABLE(); - GPIOA->MODER &= ~(0b11<< (5 * 2)); // reset PA5 mode - GPIOA->MODER |= 0b01<< (5 * 2); // 01 - write mode -} - - -void led2_toggle(void){ - - uint32_t isOn; - - isOn = GPIOA->IDR & (0b1 << 5); //recent write value - - if(isOn > 0) { - - GPIOA->BSRR &= ~(0b1 << 5); //set 0 on PA_5_5 - GPIOA->BSRR |= 0b1<< (5 + 16); // set 1 on PA5_21 - - } else { - - GPIOA->BSRR |= 0b1 << 5; // set 1 on PA5_5 - GPIOA->BSRR &= ~(0b1 << (5 + 16)); // set 0 on PA5_21 + int ch = pc.getc(); + pc.putc(ch); + if(ch == 0x0D) { + + while(!pc.writeable()); + pc.putc(0x0A); + } } -} - - -void button_init(void) { - - __HAL_RCC_GPIOC_CLK_ENABLE(); - GPIOC->MODER &= ~(0b11<< (13 * 2)); // reset PC13 mode - GPIOC->MODER |= 0b00<< (13 * 2); // 00 - read mode - - SYSCFG->EXTICR[3] &= ~(0b1111 << 4); - SYSCFG->EXTICR[3] |= (0b0010 << 4); - - EXTI->IMR |= (0b1 << 13); - EXTI->FTSR |= (0b1 << 13); - -} - -void button_Handler(void){ - - if(interval < 2000) { - interval *= 2; - } else { - interval = 500; - } - - EXTI->PR |= (0b1 << 13); } \ No newline at end of file