program 4 code
Dependencies: LCD_DISCO_F429ZI mbed BSP_DISCO_F429ZI
main.cpp@4:60bddeca288c, 2020-12-05 (annotated)
- Committer:
- edwardjiang
- Date:
- Sat Dec 05 18:35:22 2020 +0000
- Revision:
- 4:60bddeca288c
- Parent:
- 3:c8f1a16767f2
- Child:
- 5:c6b7bdcadcd4
new code
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
edwardjiang | 0:84dbe22c269c | 1 | #include "mbed.h" |
edwardjiang | 0:84dbe22c269c | 2 | #include "LCD_DISCO_F429ZI.h" |
edwardjiang | 0:84dbe22c269c | 3 | |
edwardjiang | 0:84dbe22c269c | 4 | LCD_DISCO_F429ZI lcd; |
edwardjiang | 0:84dbe22c269c | 5 | InterruptIn user_button(USER_BUTTON); |
edwardjiang | 0:84dbe22c269c | 6 | DigitalOut led1(LED1); |
edwardjiang | 0:84dbe22c269c | 7 | extern "C" uint32_t getMax(); |
edwardjiang | 4:60bddeca288c | 8 | extern "C" uint32_t getTotFreq(); |
edwardjiang | 1:551c68b9547b | 9 | extern "C" uint8_t * GetWordAt(int32_t i); |
edwardjiang | 1:551c68b9547b | 10 | extern "C" int16_t GetFreqAt(int32_t i); |
edwardjiang | 0:84dbe22c269c | 11 | |
edwardjiang | 0:84dbe22c269c | 12 | void button_pressed() |
edwardjiang | 0:84dbe22c269c | 13 | { |
edwardjiang | 4:60bddeca288c | 14 | lcd.Clear(LCD_COLOR_GREEN); |
edwardjiang | 4:60bddeca288c | 15 | lcd.SetBackColor(LCD_COLOR_BROWN); |
edwardjiang | 4:60bddeca288c | 16 | lcd.SetTextColor(LCD_COLOR_BLACK); |
edwardjiang | 0:84dbe22c269c | 17 | |
edwardjiang | 0:84dbe22c269c | 18 | } |
edwardjiang | 0:84dbe22c269c | 19 | |
edwardjiang | 0:84dbe22c269c | 20 | void button_released() |
edwardjiang | 0:84dbe22c269c | 21 | { |
edwardjiang | 4:60bddeca288c | 22 | lcd.Clear(LCD_COLOR_BLUE); |
edwardjiang | 4:60bddeca288c | 23 | lcd.SetBackColor(LCD_COLOR_BLUE); |
edwardjiang | 4:60bddeca288c | 24 | lcd.SetTextColor(LCD_COLOR_WHITE); |
edwardjiang | 0:84dbe22c269c | 25 | |
edwardjiang | 0:84dbe22c269c | 26 | } |
edwardjiang | 0:84dbe22c269c | 27 | int main() |
edwardjiang | 0:84dbe22c269c | 28 | { |
edwardjiang | 0:84dbe22c269c | 29 | user_button.rise(&button_pressed); |
edwardjiang | 0:84dbe22c269c | 30 | user_button.fall(&button_released); |
edwardjiang | 0:84dbe22c269c | 31 | uint8_t text[30]; |
edwardjiang | 4:60bddeca288c | 32 | uint8_t text2[30]; |
edwardjiang | 0:84dbe22c269c | 33 | led1 = 1; |
edwardjiang | 0:84dbe22c269c | 34 | |
edwardjiang | 1:551c68b9547b | 35 | uint32_t count=getMax(); |
edwardjiang | 4:60bddeca288c | 36 | //int16_t freq=GetFreqAt(2); |
edwardjiang | 4:60bddeca288c | 37 | uint32_t totalFreq=getTotFreq(); |
edwardjiang | 0:84dbe22c269c | 38 | BSP_LCD_SetFont(&Font20); |
edwardjiang | 0:84dbe22c269c | 39 | lcd.DisplayStringAt(0, LINE(1), (uint8_t *)"MBED EXAMPLE", CENTER_MODE); |
edwardjiang | 0:84dbe22c269c | 40 | wait(1); |
edwardjiang | 2:2cfdd07ab939 | 41 | |
edwardjiang | 4:60bddeca288c | 42 | //sprintf((char*)text, "freq=%d", freq); |
edwardjiang | 4:60bddeca288c | 43 | //lcd.DisplayStringAt(1, LINE(1), (uint8_t *)&text, LEFT_MODE); |
edwardjiang | 2:2cfdd07ab939 | 44 | |
edwardjiang | 0:84dbe22c269c | 45 | while(1) |
edwardjiang | 0:84dbe22c269c | 46 | { |
edwardjiang | 0:84dbe22c269c | 47 | lcd.Clear(LCD_COLOR_BLUE); |
edwardjiang | 0:84dbe22c269c | 48 | lcd.SetBackColor(LCD_COLOR_BLUE); |
edwardjiang | 0:84dbe22c269c | 49 | lcd.SetTextColor(LCD_COLOR_WHITE); |
edwardjiang | 0:84dbe22c269c | 50 | wait(0.3); |
edwardjiang | 0:84dbe22c269c | 51 | |
edwardjiang | 0:84dbe22c269c | 52 | uint16_t Xpos =100; |
edwardjiang | 0:84dbe22c269c | 53 | for(int i=0;i<count;i++){ |
edwardjiang | 0:84dbe22c269c | 54 | uint32_t word=0; |
edwardjiang | 4:60bddeca288c | 55 | uint16_t wordFreq=GetFreqAt(i); |
edwardjiang | 0:84dbe22c269c | 56 | float freq= wordFreq/totalFreq; |
edwardjiang | 4:60bddeca288c | 57 | sprintf((char*)text, "count=%d", count); |
edwardjiang | 4:60bddeca288c | 58 | lcd.DisplayStringAt(i, LINE(i), (uint8_t *)&text, LEFT_MODE); |
edwardjiang | 4:60bddeca288c | 59 | sprintf((char*)text2, "Tfreq=%d", totalFreq); |
edwardjiang | 4:60bddeca288c | 60 | lcd.DisplayStringAt(5, LINE(5), (uint8_t *)&text2, LEFT_MODE); |
edwardjiang | 4:60bddeca288c | 61 | // sprintf((char*)text, "freq=%d", wordFreq); |
edwardjiang | 4:60bddeca288c | 62 | // lcd.DisplayStringAt(i, LINE(i), (uint8_t *)&text, LEFT_MODE); |
edwardjiang | 0:84dbe22c269c | 63 | |
edwardjiang | 0:84dbe22c269c | 64 | uint16_t h=i*20; |
edwardjiang | 0:84dbe22c269c | 65 | lcd.DrawRect(Xpos, 200, 20, h); |
edwardjiang | 0:84dbe22c269c | 66 | Xpos=Xpos+30; |
edwardjiang | 0:84dbe22c269c | 67 | } |
edwardjiang | 0:84dbe22c269c | 68 | wait(1); |
edwardjiang | 0:84dbe22c269c | 69 | |
edwardjiang | 0:84dbe22c269c | 70 | |
edwardjiang | 0:84dbe22c269c | 71 | |
edwardjiang | 0:84dbe22c269c | 72 | led1 = !led1; |
edwardjiang | 0:84dbe22c269c | 73 | wait(0.5); |
edwardjiang | 0:84dbe22c269c | 74 | } |
edwardjiang | 0:84dbe22c269c | 75 | } |
edwardjiang | 0:84dbe22c269c | 76 |