Funzioni di IO varie con seriale asincrona
Dependents: Nucleo_AsyncSerialIO
Fork of IOFuncLib by
IOFuncLib.cpp@2:8e723d99838e, 2015-05-28 (annotated)
- Committer:
- MaxScorda
- Date:
- Thu May 28 14:52:10 2015 +0000
- Revision:
- 2:8e723d99838e
- Parent:
- 1:58f3784ad68e
- Child:
- 3:6c6446382bb2
Abbozzo screenlib ultimato.
; Pre parser
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MaxScorda | 2:8e723d99838e | 1 | #include "config.h" |
MaxScorda | 0:f401aa69861a | 2 | #include "IOFuncLib.h" |
MaxScorda | 0:f401aa69861a | 3 | #include "mbed.h" |
MaxScorda | 0:f401aa69861a | 4 | |
MaxScorda | 1:58f3784ad68e | 5 | // FLASHER |
MaxScorda | 0:f401aa69861a | 6 | Flasher::Flasher(PinName pin) : _pin(pin) |
MaxScorda | 0:f401aa69861a | 7 | { |
MaxScorda | 0:f401aa69861a | 8 | _pin = 0; |
MaxScorda | 0:f401aa69861a | 9 | } |
MaxScorda | 0:f401aa69861a | 10 | |
MaxScorda | 0:f401aa69861a | 11 | void Flasher::flash(int n) |
MaxScorda | 0:f401aa69861a | 12 | { |
MaxScorda | 0:f401aa69861a | 13 | for(int i=0; i<n*2; i++) { |
MaxScorda | 0:f401aa69861a | 14 | _pin = !_pin; |
MaxScorda | 0:f401aa69861a | 15 | wait_ms(50); |
MaxScorda | 0:f401aa69861a | 16 | } |
MaxScorda | 0:f401aa69861a | 17 | } |
MaxScorda | 0:f401aa69861a | 18 | |
MaxScorda | 0:f401aa69861a | 19 | void Flasher::onOff(bool n) |
MaxScorda | 0:f401aa69861a | 20 | { |
MaxScorda | 0:f401aa69861a | 21 | _pin=n; |
MaxScorda | 0:f401aa69861a | 22 | } |
MaxScorda | 0:f401aa69861a | 23 | |
MaxScorda | 0:f401aa69861a | 24 | void Flasher::notPin() |
MaxScorda | 0:f401aa69861a | 25 | { |
MaxScorda | 0:f401aa69861a | 26 | _pin = !_pin; |
MaxScorda | 1:58f3784ad68e | 27 | } |
MaxScorda | 1:58f3784ad68e | 28 | |
MaxScorda | 1:58f3784ad68e | 29 | // Screen |
MaxScorda | 1:58f3784ad68e | 30 | Screen::Screen(Serial* ps) |
MaxScorda | 1:58f3784ad68e | 31 | { |
MaxScorda | 1:58f3784ad68e | 32 | _ps=ps; |
MaxScorda | 1:58f3784ad68e | 33 | } |
MaxScorda | 1:58f3784ad68e | 34 | |
MaxScorda | 1:58f3784ad68e | 35 | void Screen::banner() |
MaxScorda | 1:58f3784ad68e | 36 | { |
MaxScorda | 2:8e723d99838e | 37 | // _ps->printf("\f"); |
MaxScorda | 2:8e723d99838e | 38 | // _ps->printf("----- Boot screen -----\n\r"); |
MaxScorda | 2:8e723d99838e | 39 | // _ps->printf("--- Nucleo Scorda IO Test ---\n\r\n"); |
MaxScorda | 2:8e723d99838e | 40 | writeScreen("----- Boot screen -----\n",1,1); |
MaxScorda | 2:8e723d99838e | 41 | writeScreen("--- Nucleo Scorda IO Test ---\n",1,2); |
MaxScorda | 2:8e723d99838e | 42 | commitScreen(); |
MaxScorda | 1:58f3784ad68e | 43 | } |
MaxScorda | 1:58f3784ad68e | 44 | |
MaxScorda | 1:58f3784ad68e | 45 | void Screen::pressed() |
MaxScorda | 1:58f3784ad68e | 46 | { |
MaxScorda | 2:8e723d99838e | 47 | //_ps->printf("\f"); |
MaxScorda | 2:8e723d99838e | 48 | // _ps->printf("*** Reset Screen ***\n\r\n"); |
MaxScorda | 2:8e723d99838e | 49 | writeScreen("*** Reset Screen ***\n",1,1); |
MaxScorda | 2:8e723d99838e | 50 | commitScreen(); |
MaxScorda | 2:8e723d99838e | 51 | } |
MaxScorda | 2:8e723d99838e | 52 | |
MaxScorda | 2:8e723d99838e | 53 | void Screen::commitScreen() |
MaxScorda | 2:8e723d99838e | 54 | { |
MaxScorda | 1:58f3784ad68e | 55 | _ps->printf("\f"); |
MaxScorda | 2:8e723d99838e | 56 | for (int j = 0; j < screenRow-2; j++) { |
MaxScorda | 2:8e723d99838e | 57 | for (int i = 0; i < screenColumn; i++) { |
MaxScorda | 2:8e723d99838e | 58 | _ps->printf("%c",svec[i][j]); |
MaxScorda | 2:8e723d99838e | 59 | } |
MaxScorda | 2:8e723d99838e | 60 | _ps->printf("\n\r"); |
MaxScorda | 2:8e723d99838e | 61 | } |
MaxScorda | 2:8e723d99838e | 62 | } |
MaxScorda | 2:8e723d99838e | 63 | |
MaxScorda | 2:8e723d99838e | 64 | void Screen::writeScreen(char sstr[], char xx, char yy) |
MaxScorda | 2:8e723d99838e | 65 | { |
MaxScorda | 2:8e723d99838e | 66 | char i=0; |
MaxScorda | 2:8e723d99838e | 67 | while ((sstr[i]!='\n') && (i<screenColumn)) { |
MaxScorda | 2:8e723d99838e | 68 | // _ps->printf((char*) sstr[i]); |
MaxScorda | 2:8e723d99838e | 69 | svec[xx+i][yy]=sstr[i]; |
MaxScorda | 2:8e723d99838e | 70 | i++; |
MaxScorda | 2:8e723d99838e | 71 | } |
MaxScorda | 2:8e723d99838e | 72 | |
MaxScorda | 1:58f3784ad68e | 73 | } |
MaxScorda | 2:8e723d99838e | 74 | |
MaxScorda | 2:8e723d99838e | 75 | void Screen::emptyFrame() |
MaxScorda | 2:8e723d99838e | 76 | { |
MaxScorda | 2:8e723d99838e | 77 | char car; |
MaxScorda | 2:8e723d99838e | 78 | for (int j = 0; j < screenRow-2; j++) { |
MaxScorda | 2:8e723d99838e | 79 | if ((j==0) || (j==screenRow-3)) car='-'; |
MaxScorda | 2:8e723d99838e | 80 | else car=' '; |
MaxScorda | 2:8e723d99838e | 81 | for (int i = 1; i < screenColumn-1; i++) { |
MaxScorda | 2:8e723d99838e | 82 | svec[i][j]=car; |
MaxScorda | 2:8e723d99838e | 83 | } |
MaxScorda | 2:8e723d99838e | 84 | svec[0][j]='|'; |
MaxScorda | 2:8e723d99838e | 85 | svec[screenColumn-1][j]='|'; |
MaxScorda | 2:8e723d99838e | 86 | } |
MaxScorda | 2:8e723d99838e | 87 | } |
MaxScorda | 2:8e723d99838e | 88 | |
MaxScorda | 2:8e723d99838e | 89 | void Screen::clearScreen(char upperx, char uppery, char loverx, char lowery) |
MaxScorda | 2:8e723d99838e | 90 | { |
MaxScorda | 2:8e723d99838e | 91 | //controllare margini |
MaxScorda | 2:8e723d99838e | 92 | |
MaxScorda | 2:8e723d99838e | 93 | for (int j = uppery; j <= lowery; j++) { |
MaxScorda | 2:8e723d99838e | 94 | for (int i = upperx; i <= loverx; i++) { |
MaxScorda | 2:8e723d99838e | 95 | svec[i][j]=' ' ; |
MaxScorda | 2:8e723d99838e | 96 | } |
MaxScorda | 2:8e723d99838e | 97 | } |
MaxScorda | 2:8e723d99838e | 98 | } |