
wordfrequency
Dependencies: LCD_DISCO_F429ZI mbed TS_DISCO_F429ZI BSP_DISCO_F429ZI
main.cpp@1:586013f67abf, 2020-12-07 (annotated)
- Committer:
- kaneyn
- Date:
- Mon Dec 07 18:23:27 2020 +0000
- Revision:
- 1:586013f67abf
- Parent:
- 0:349c994479c8
adasd; \;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kaneyn | 0:349c994479c8 | 1 | #include "mbed.h" |
kaneyn | 0:349c994479c8 | 2 | #include "TS_DISCO_F429ZI.h" |
kaneyn | 0:349c994479c8 | 3 | #include "LCD_DISCO_F429ZI.h" |
kaneyn | 0:349c994479c8 | 4 | |
kaneyn | 0:349c994479c8 | 5 | LCD_DISCO_F429ZI lcd; |
kaneyn | 0:349c994479c8 | 6 | TS_DISCO_F429ZI ts; |
kaneyn | 0:349c994479c8 | 7 | |
kaneyn | 1:586013f67abf | 8 | InterruptIn user_button(USER_BUTTON); |
kaneyn | 1:586013f67abf | 9 | |
kaneyn | 0:349c994479c8 | 10 | |
kaneyn | 0:349c994479c8 | 11 | extern "C" int32_t CountItems(); |
kaneyn | 0:349c994479c8 | 12 | extern "C" int32_t SumAllFrequencies(); |
kaneyn | 0:349c994479c8 | 13 | extern "C" uint8_t * GetWordAt(int32_t i); // NOTE: returns a pointer to a string |
kaneyn | 0:349c994479c8 | 14 | extern "C" int16_t GetFreqAt(int32_t i); // NOTE: return the value of the frequency count |
kaneyn | 0:349c994479c8 | 15 | |
kaneyn | 1:586013f67abf | 16 | |
kaneyn | 1:586013f67abf | 17 | |
kaneyn | 1:586013f67abf | 18 | |
kaneyn | 1:586013f67abf | 19 | |
kaneyn | 1:586013f67abf | 20 | void button_pressed(){ |
kaneyn | 1:586013f67abf | 21 | |
kaneyn | 1:586013f67abf | 22 | lcd.Clear(LCD_COLOR_YELLOW); |
kaneyn | 1:586013f67abf | 23 | lcd.SetBackColor(LCD_COLOR_BLUE); |
kaneyn | 1:586013f67abf | 24 | lcd.SetTextColor(LCD_COLOR_WHITE); |
kaneyn | 1:586013f67abf | 25 | } |
kaneyn | 1:586013f67abf | 26 | |
kaneyn | 1:586013f67abf | 27 | |
kaneyn | 1:586013f67abf | 28 | void button_released(){ |
kaneyn | 1:586013f67abf | 29 | |
kaneyn | 1:586013f67abf | 30 | } |
kaneyn | 1:586013f67abf | 31 | |
kaneyn | 1:586013f67abf | 32 | void push_button_Callback() // Only executes when button interrupt received |
kaneyn | 1:586013f67abf | 33 | { |
kaneyn | 1:586013f67abf | 34 | |
kaneyn | 1:586013f67abf | 35 | |
kaneyn | 1:586013f67abf | 36 | |
kaneyn | 1:586013f67abf | 37 | |
kaneyn | 1:586013f67abf | 38 | user_button.rise(&button_pressed); |
kaneyn | 1:586013f67abf | 39 | user_button.fall(&button_released); |
kaneyn | 1:586013f67abf | 40 | } |
kaneyn | 1:586013f67abf | 41 | |
kaneyn | 0:349c994479c8 | 42 | |
kaneyn | 0:349c994479c8 | 43 | int main() |
kaneyn | 0:349c994479c8 | 44 | { |
kaneyn | 1:586013f67abf | 45 | int32_t words; |
kaneyn | 1:586013f67abf | 46 | int32_t frequencies; |
kaneyn | 1:586013f67abf | 47 | int16_t frequency; |
kaneyn | 1:586013f67abf | 48 | uint8_t *word; |
kaneyn | 0:349c994479c8 | 49 | uint8_t text[30]; |
kaneyn | 0:349c994479c8 | 50 | uint8_t status; |
kaneyn | 1:586013f67abf | 51 | |
kaneyn | 1:586013f67abf | 52 | |
kaneyn | 1:586013f67abf | 53 | |
kaneyn | 1:586013f67abf | 54 | |
kaneyn | 1:586013f67abf | 55 | push_button_Callback(); |
kaneyn | 0:349c994479c8 | 56 | |
kaneyn | 1:586013f67abf | 57 | |
kaneyn | 0:349c994479c8 | 58 | BSP_LCD_SetFont(&Font20); |
kaneyn | 1:586013f67abf | 59 | |
kaneyn | 1:586013f67abf | 60 | |
kaneyn | 0:349c994479c8 | 61 | lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN", CENTER_MODE); |
kaneyn | 0:349c994479c8 | 62 | lcd.DisplayStringAt(0, LINE(6), (uint8_t *)"DEMO", CENTER_MODE); |
kaneyn | 0:349c994479c8 | 63 | wait(1); |
kaneyn | 1:586013f67abf | 64 | |
kaneyn | 0:349c994479c8 | 65 | status = ts.Init(lcd.GetXSize(), lcd.GetYSize()); |
kaneyn | 1:586013f67abf | 66 | |
kaneyn | 1:586013f67abf | 67 | if (status != TS_OK) { |
kaneyn | 1:586013f67abf | 68 | lcd.Clear(LCD_COLOR_RED); |
kaneyn | 1:586013f67abf | 69 | lcd.SetBackColor(LCD_COLOR_RED); |
kaneyn | 1:586013f67abf | 70 | lcd.SetTextColor(LCD_COLOR_WHITE); |
kaneyn | 1:586013f67abf | 71 | lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN", CENTER_MODE); |
kaneyn | 1:586013f67abf | 72 | lcd.DisplayStringAt(0, LINE(6), (uint8_t *)"INIT FAIL", CENTER_MODE); |
kaneyn | 1:586013f67abf | 73 | } else { |
kaneyn | 1:586013f67abf | 74 | lcd.Clear(LCD_COLOR_GREEN); |
kaneyn | 1:586013f67abf | 75 | lcd.SetBackColor(LCD_COLOR_GREEN); |
kaneyn | 1:586013f67abf | 76 | lcd.SetTextColor(LCD_COLOR_WHITE); |
kaneyn | 1:586013f67abf | 77 | lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN", CENTER_MODE); |
kaneyn | 1:586013f67abf | 78 | lcd.DisplayStringAt(0, LINE(6), (uint8_t *)"INIT OK", CENTER_MODE); |
kaneyn | 0:349c994479c8 | 79 | } |
kaneyn | 1:586013f67abf | 80 | |
kaneyn | 1:586013f67abf | 81 | |
kaneyn | 0:349c994479c8 | 82 | wait(1); |
kaneyn | 0:349c994479c8 | 83 | lcd.Clear(LCD_COLOR_BLUE); |
kaneyn | 0:349c994479c8 | 84 | lcd.SetBackColor(LCD_COLOR_BLUE); |
kaneyn | 0:349c994479c8 | 85 | lcd.SetTextColor(LCD_COLOR_WHITE); |
kaneyn | 1:586013f67abf | 86 | |
kaneyn | 1:586013f67abf | 87 | frequencies = SumAllFrequencies(); |
kaneyn | 1:586013f67abf | 88 | words = CountItems(); |
kaneyn | 1:586013f67abf | 89 | words = 4; |
kaneyn | 1:586013f67abf | 90 | |
kaneyn | 1:586013f67abf | 91 | |
kaneyn | 1:586013f67abf | 92 | |
kaneyn | 1:586013f67abf | 93 | |
kaneyn | 1:586013f67abf | 94 | sprintf((char*)text, "words=%d", words); |
kaneyn | 1:586013f67abf | 95 | lcd.DisplayStringAt(0, LINE(3), (uint8_t *)&text, LEFT_MODE); |
kaneyn | 1:586013f67abf | 96 | sprintf((char*)text, "frequencies=%d", frequencies); |
kaneyn | 1:586013f67abf | 97 | lcd.DisplayStringAt(0, LINE(5), (uint8_t *)&text, LEFT_MODE); |
kaneyn | 0:349c994479c8 | 98 | |
kaneyn | 0:349c994479c8 | 99 | |
kaneyn | 1:586013f67abf | 100 | while(1) { |
kaneyn | 1:586013f67abf | 101 | //Loop Through maximum word |
kaneyn | 1:586013f67abf | 102 | for(int32_t i=0; i < words; i++){ |
kaneyn | 1:586013f67abf | 103 | word = GetWordAt(i); |
kaneyn | 1:586013f67abf | 104 | for(int i = 0; word[i] != 0; i++){ |
kaneyn | 1:586013f67abf | 105 | sprintf((char*)text, "word=%d", *(word+i)); |
kaneyn | 1:586013f67abf | 106 | lcd.DisplayStringAt(0, LINE(6), (uint8_t *)&text, LEFT_MODE); |
kaneyn | 1:586013f67abf | 107 | wait(1); |
kaneyn | 1:586013f67abf | 108 | } |
kaneyn | 1:586013f67abf | 109 | } |
kaneyn | 1:586013f67abf | 110 | for(int32_t i=0; i < words; i++){ |
kaneyn | 1:586013f67abf | 111 | frequency = GetFreqAt(i); |
kaneyn | 1:586013f67abf | 112 | sprintf((char*)text, "frequency=%d", frequency); |
kaneyn | 1:586013f67abf | 113 | lcd.DisplayStringAt(0, LINE(5), (uint8_t *)&text, LEFT_MODE); |
kaneyn | 1:586013f67abf | 114 | } |
kaneyn | 1:586013f67abf | 115 | |
kaneyn | 1:586013f67abf | 116 | |
kaneyn | 0:349c994479c8 | 117 | } |
kaneyn | 0:349c994479c8 | 118 | } |