* - got to 40MHz clock\r
*/\r
\r
+void pulse(uint8_t byte);\r
+\r
int main(void)\r
{\r
+ // prepare flash latency for 40MHz operation\r
+ FLASH->ACR &= ~(FLASH_ACR_LATENCY);\r
+ FLASH->ACR |= FLASH_ACR_LATENCY_2WS;\r
+\r
// turn on HSI\r
RCC->CR |= RCC_CR_HSION;\r
while ((RCC->CR & RCC_CR_HSIRDY) != RCC_CR_HSIRDY);\r
GPIOA->PUPDR &= ~(GPIO_PUPDR_PUPD5 | GPIO_PUPDR_PUPD0);\r
GPIOA->PUPDR |= GPIO_PUPDR_PUPD5_0 | GPIO_PUPDR_PUPD0_1; // pd for button\r
\r
- while (1) {\r
+ pulse(*((uint8_t *)0x08080000)); // 0b00100101\r
+\r
+ while (1);/* {\r
delay(500);\r
//if (GPIOA->IDR & 0x01)\r
GPIOA->BSRR |= 1 << 5;\r
delay(500);\r
//else\r
GPIOA->BRR |= 1 << 5;\r
- }\r
+ }*/\r
}\r
\r
void _exit(int code)\r
{ for (;;); }\r
+\r
+void pulse(uint8_t byte)\r
+{\r
+ int8_t i = 7;\r
+ do {\r
+ GPIOA->BSRR |= 1 << 5;\r
+ delay((byte & (1 << i)) ? 400 : 100);\r
+ GPIOA->BRR |= 1 << 5;\r
+ delay((byte & (1 << i)) ? 100 : 400);\r
+ } while (--i >= 0);\r
+}\r