@@ -0,0 +1,13 | |||||
|
1 | TEMPLATE = app | |||
|
2 | CONFIG += cpu | |||
|
3 | ||||
|
4 | ||||
|
5 | UCMODEL=stm32f4 | |||
|
6 | ||||
|
7 | BSP = STM32F4Eval | |||
|
8 | ||||
|
9 | DEFINES += CPUFREQ=160000000 | |||
|
10 | ||||
|
11 | SOURCES += \ | |||
|
12 | main.c | |||
|
13 |
@@ -0,0 +1,72 | |||||
|
1 | #include <stdio.h> | |||
|
2 | #include <fat32.h> | |||
|
3 | #include <gpio.h> | |||
|
4 | #include <uart.h> | |||
|
5 | #include <stm32f4xx.h> | |||
|
6 | #include <math.h> | |||
|
7 | #include <bsp.h> | |||
|
8 | #include <i2c.h> | |||
|
9 | #include <CS43L22.h> | |||
|
10 | #include <ina226.h> | |||
|
11 | #include <fonts.h> | |||
|
12 | #include <stdlib.h> | |||
|
13 | #include <core.h> | |||
|
14 | #include <terminal.h> | |||
|
15 | ||||
|
16 | extern streamdevice* __opnfiles__[__MAX_OPENED_FILES__]; | |||
|
17 | ||||
|
18 | #define LCD_COLOR_WHITE 0xFFFF | |||
|
19 | #define LCD_COLOR_BLACK 0x0000 | |||
|
20 | #define LCD_COLOR_GREY 0xF7DE | |||
|
21 | #define LCD_COLOR_BLUE 0x001F | |||
|
22 | #define LCD_COLOR_BLUE2 0x051F | |||
|
23 | #define LCD_COLOR_RED 0xF800 | |||
|
24 | #define LCD_COLOR_MAGENTA 0xF81F | |||
|
25 | #define LCD_COLOR_GREEN 0x07E0 | |||
|
26 | #define LCD_COLOR_CYAN 0x7FFF | |||
|
27 | #define LCD_COLOR_YELLOW 0xFFE0 | |||
|
28 | ||||
|
29 | extern int __lineCount__; | |||
|
30 | extern int __columnCount__; | |||
|
31 | ||||
|
32 | int main() | |||
|
33 | { | |||
|
34 | uint16_t innerbuffer[16]; | |||
|
35 | uint16_t outterbuffer[16]; | |||
|
36 | for(int i=0;i<16;i++)innerbuffer[i]=LCD_COLOR_BLUE; | |||
|
37 | for(int i=0;i<16;i++)outterbuffer[i]=LCD_COLOR_RED; | |||
|
38 | ili9328paintFilRect(&lcd0,0,0,240,320,LCD_COLOR_CYAN,5,LCD_COLOR_BLACK); | |||
|
39 | ||||
|
40 | streamdevice* terminal=__opnfiles__[1]; | |||
|
41 | terminal_init(&lcd0,&ComicSansMS_18,terminal); | |||
|
42 | //terminal->write(terminal,"Hi",1, 2); | |||
|
43 | //lcd0.paintText(&lcd0,"Hello",10,50,&ComicSansMS_18,0xFF00); | |||
|
44 | // __opnfiles__[1]=terminal; | |||
|
45 | //__opnfiles__[0]=terminal; | |||
|
46 | int i=1; | |||
|
47 | //printf("hello World %d",i); | |||
|
48 | ||||
|
49 | printf("Line cnt :\n \t%d\n",__lineCount__); | |||
|
50 | printf("Column cnt :\n \t%d\n",__columnCount__); | |||
|
51 | printf("CPU Freq :\n \t%dMHz\n",getCpuFreq()/1000000); | |||
|
52 | while(1) | |||
|
53 | { | |||
|
54 | i%=1000; | |||
|
55 | //terminal->write(&terminal," Hi",1, 2); | |||
|
56 | //delay_100us(1000); | |||
|
57 | gpioset(LED1); | |||
|
58 | //delay_100us(1000); | |||
|
59 | gpioclr(LED1); | |||
|
60 | } | |||
|
61 | printf("hello world\n\r"); | |||
|
62 | return 0; | |||
|
63 | } | |||
|
64 | ||||
|
65 | ||||
|
66 | ||||
|
67 | ||||
|
68 | ||||
|
69 | ||||
|
70 | ||||
|
71 | ||||
|
72 |
@@ -0,0 +1,121 | |||||
|
1 | /*------------------------------------------------------------------------------ | |||
|
2 | -- This file is a part of the libuc, microcontroler library | |||
|
3 | -- Copyright (C) 2012, Alexis Jeandet | |||
|
4 | -- | |||
|
5 | -- This program is free software; you can redistribute it and/or modify | |||
|
6 | -- it under the terms of the GNU General Public License as published by | |||
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |||
|
8 | -- (at your option) any later version. | |||
|
9 | -- | |||
|
10 | -- This program is distributed in the hope that it will be useful, | |||
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
|
13 | -- GNU General Public License for more details. | |||
|
14 | -- | |||
|
15 | -- You should have received a copy of the GNU General Public License | |||
|
16 | -- along with this program; if not, write to the Free Software | |||
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
|
18 | ------------------------------------------------------------------------------- | |||
|
19 | -- Author : Alexis Jeandet | |||
|
20 | -- Mail : alexis.jeandet@gmail.com | |||
|
21 | -------------------------------------------------------------------------------*/ | |||
|
22 | ||||
|
23 | #include <i2c.h> | |||
|
24 | #include <stm32f4xx_usart.h> | |||
|
25 | #include <stm32f4xx_rcc.h> | |||
|
26 | #include <stm32f4xx_gpio.h> | |||
|
27 | #include <stm32f4xx_sdio.h> | |||
|
28 | #include <gpio.h> | |||
|
29 | #include <core.h> | |||
|
30 | #include <sdcard.h> | |||
|
31 | #include <sdcard-sdio.h> | |||
|
32 | ||||
|
33 | void sdcardsdiomake(sdcardDev* sdcard,UHANDLE phy,void (*rcvr_mmc) (UHANDLE,char *,uint32_t ),void (*xmit_mmc) (UHANDLE,const char *,uint32_t ),void (*setspeed) (UHANDLE phy,uint32_t speed),uint32_t (*getspeed) (UHANDLE phy)) | |||
|
34 | { | |||
|
35 | sdcard->phy = phy; | |||
|
36 | sdcard->rcvr_mmc = rcvr_mmc; | |||
|
37 | sdcard->xmit_mmc = xmit_mmc; | |||
|
38 | sdcard->setspeed = setspeed; | |||
|
39 | sdcard->getspeed = getspeed; | |||
|
40 | } | |||
|
41 | ||||
|
42 | void sdcardsdiomakeblkdev(blkdevice* dev,sdcardDev* sdcard, blkdevselect_t select,blkdevpower_t power,blkdevdetect_t detect,blkdevwriteprotected_t writeprotected) | |||
|
43 | { | |||
|
44 | dev->phy=sdcard; | |||
|
45 | dev->select=select; | |||
|
46 | dev->power = power; | |||
|
47 | dev->detect = detect; | |||
|
48 | dev->writeprotected = writeprotected; | |||
|
49 | /*dev->write = sdcarddisk_write; | |||
|
50 | dev->read = sdcarddisk_read; | |||
|
51 | dev->ioctl = sdcarddisk_ioctl; | |||
|
52 | dev->initialize = sdcarddisk_initialize; | |||
|
53 | dev->status = sdcarddisk_status;*/ | |||
|
54 | } | |||
|
55 | ||||
|
56 | int sdcardselect (blkdeviceptr _this) | |||
|
57 | { | |||
|
58 | ||||
|
59 | } | |||
|
60 | ||||
|
61 | void sdcarddeselect (blkdeviceptr _this) | |||
|
62 | { | |||
|
63 | ||||
|
64 | } | |||
|
65 | ||||
|
66 | int sdcardwait_ready (sdcardDev* sdcard) | |||
|
67 | { | |||
|
68 | ||||
|
69 | } | |||
|
70 | ||||
|
71 | int sdcardxmit_datablock (sdcardDev* sdcard,const char *buff,char token) | |||
|
72 | { | |||
|
73 | ||||
|
74 | } | |||
|
75 | ||||
|
76 | int sdcardrcvr_datablock (sdcardDev* sdcard,char *buff,uint32_t btr) | |||
|
77 | { | |||
|
78 | ||||
|
79 | } | |||
|
80 | ||||
|
81 | char sdcardsend_cmd (blkdeviceptr _this,char cmd,uint32_t arg) | |||
|
82 | { | |||
|
83 | ||||
|
84 | } | |||
|
85 | ||||
|
86 | DSTATUS sdcarddisk_status (blkdeviceptr _this) | |||
|
87 | { | |||
|
88 | return RES_OK; | |||
|
89 | } | |||
|
90 | ||||
|
91 | DSTATUS sdcarddisk_initialize (blkdeviceptr _this) | |||
|
92 | { | |||
|
93 | return RES_OK; | |||
|
94 | } | |||
|
95 | ||||
|
96 | DRESULT sdcarddisk_read (blkdeviceptr _this,char *buff,uint32_t sector,char count) | |||
|
97 | { | |||
|
98 | return RES_OK; | |||
|
99 | } | |||
|
100 | ||||
|
101 | DRESULT sdcarddisk_write (blkdeviceptr _this,const char *buff,uint32_t sector,char count) | |||
|
102 | { | |||
|
103 | ||||
|
104 | } | |||
|
105 | ||||
|
106 | DRESULT sdcarddisk_ioctl (blkdeviceptr _this,char ctrl,void *buff) | |||
|
107 | { | |||
|
108 | return RES_OK; | |||
|
109 | } | |||
|
110 | ||||
|
111 | ||||
|
112 | ||||
|
113 | ||||
|
114 | ||||
|
115 | ||||
|
116 | ||||
|
117 | ||||
|
118 | ||||
|
119 | ||||
|
120 | ||||
|
121 |
@@ -0,0 +1,16 | |||||
|
1 | TEMPLATE = lib | |||
|
2 | OBJECTS_DIR = obj | |||
|
3 | ||||
|
4 | SOURCES += sdcard-sdio.c | |||
|
5 | ||||
|
6 | INCLUDEPATH += ../../includes \ | |||
|
7 | ../CPU/STM32F4xx_StdPeriph_Driver/inc \ | |||
|
8 | ../CPU/CMSIS/Include | |||
|
9 | ||||
|
10 | ||||
|
11 | UCMODEL=stm32f4 | |||
|
12 | ||||
|
13 | target.path = $$[QT_INSTALL_LIBS]/$$UCMODEL | |||
|
14 | INSTALLS += target | |||
|
15 | ||||
|
16 |
@@ -1,16 +1,17 | |||||
1 | TEMPLATE = subdirs |
|
1 | TEMPLATE = subdirs | |
2 | CONFIG += ordered |
|
2 | CONFIG += ordered | |
3 | SUBDIRS += QtTest/test.pro \ |
|
3 | SUBDIRS += QtTest/test.pro \ | |
4 | SOLAR_PSU_HELLO/hello.pro \ |
|
4 | SOLAR_PSU_HELLO/hello.pro \ | |
5 | SDCARD \ |
|
5 | SDCARD \ | |
6 | STM32F4IT \ |
|
6 | STM32F4IT \ | |
7 | M4StickV2 \ |
|
7 | M4StickV2 \ | |
8 | lcdHello \ |
|
8 | lcdHello \ | |
9 | BeagleSynthHello |
|
9 | BeagleSynthHello \ | |
|
10 | lcdTerminal | |||
10 |
|
11 | |||
11 |
|
12 | |||
12 |
|
13 | |||
13 |
|
14 | |||
14 |
|
15 | |||
15 |
|
16 | |||
16 |
|
17 |
@@ -1,92 +1,93 | |||||
1 | #include <stdio.h> |
|
1 | #include <stdio.h> | |
2 | #include <fat32.h> |
|
2 | #include <fat32.h> | |
3 | #include <gpio.h> |
|
3 | #include <gpio.h> | |
4 | #include <uart.h> |
|
4 | #include <uart.h> | |
5 | #include <stm32f4xx.h> |
|
5 | #include <stm32f4xx.h> | |
6 | #include <math.h> |
|
6 | #include <math.h> | |
7 | #include <bsp.h> |
|
7 | #include <bsp.h> | |
8 | #include <i2c.h> |
|
8 | #include <i2c.h> | |
9 | #include <CS43L22.h> |
|
9 | #include <CS43L22.h> | |
10 | #include <ina226.h> |
|
10 | #include <ina226.h> | |
11 | #include <fonts.h> |
|
11 | #include <fonts.h> | |
12 | #include <stdlib.h> |
|
12 | #include <stdlib.h> | |
13 | #include <core.h> |
|
13 | #include <core.h> | |
14 |
|
14 | #include <terminal.h> | ||
15 |
|
15 | |||
16 | extern streamdevice* __opnfiles__[]; |
|
16 | extern streamdevice* __opnfiles__[]; | |
17 |
|
17 | |||
18 | #define LCD_COLOR_WHITE 0xFFFF |
|
18 | #define LCD_COLOR_WHITE 0xFFFF | |
19 | #define LCD_COLOR_BLACK 0x0000 |
|
19 | #define LCD_COLOR_BLACK 0x0000 | |
20 | #define LCD_COLOR_GREY 0xF7DE |
|
20 | #define LCD_COLOR_GREY 0xF7DE | |
21 | #define LCD_COLOR_BLUE 0x001F |
|
21 | #define LCD_COLOR_BLUE 0x001F | |
22 | #define LCD_COLOR_BLUE2 0x051F |
|
22 | #define LCD_COLOR_BLUE2 0x051F | |
23 | #define LCD_COLOR_RED 0xF800 |
|
23 | #define LCD_COLOR_RED 0xF800 | |
24 | #define LCD_COLOR_MAGENTA 0xF81F |
|
24 | #define LCD_COLOR_MAGENTA 0xF81F | |
25 | #define LCD_COLOR_GREEN 0x07E0 |
|
25 | #define LCD_COLOR_GREEN 0x07E0 | |
26 | #define LCD_COLOR_CYAN 0x7FFF |
|
26 | #define LCD_COLOR_CYAN 0x7FFF | |
27 | #define LCD_COLOR_YELLOW 0xFFE0 |
|
27 | #define LCD_COLOR_YELLOW 0xFFE0 | |
28 |
|
28 | |||
29 |
|
29 | |||
30 |
|
30 | |||
31 |
|
31 | |||
32 |
|
32 | |||
33 | void monkDemo() |
|
33 | void monkDemo() | |
34 | { |
|
34 | { | |
35 | //while(1) |
|
35 | //while(1) | |
36 | { |
|
36 | { | |
37 | lcd0.paintText(&lcd0," ",10,Monk_24.Height+10,&Monk_24,LCD_COLOR_BLACK); |
|
37 | lcd0.paintText(&lcd0," ",10,Monk_24.Height+10,&Monk_24,LCD_COLOR_BLACK); | |
38 | lcd0.paintText(&lcd0," ",230-Monk_24.Width,310,&Monk_24,LCD_COLOR_BLUE); |
|
38 | lcd0.paintText(&lcd0," ",230-Monk_24.Width,310,&Monk_24,LCD_COLOR_BLUE); | |
39 | //for(volatile int i=0;i<(1024*1024*16);i++); |
|
39 | //for(volatile int i=0;i<(1024*1024*16);i++); | |
40 | //lcd0.paintFilRect(&lcd0,0,0,240,320,LCD_COLOR_WHITE,1,LCD_COLOR_WHITE); |
|
40 | //lcd0.paintFilRect(&lcd0,0,0,240,320,LCD_COLOR_WHITE,1,LCD_COLOR_WHITE); | |
41 | //for(volatile int i=0;i<(1024*1024*4);i++); |
|
41 | //for(volatile int i=0;i<(1024*1024*4);i++); | |
42 | } |
|
42 | } | |
43 | } |
|
43 | } | |
44 |
|
44 | |||
45 |
|
45 | |||
46 | void randBoxesDemo() |
|
46 | void randBoxesDemo() | |
47 | { |
|
47 | { | |
48 | int16_t x,y,w,h,t,r; |
|
48 | int16_t x,y,w,h,t,r; | |
49 | x=rand()%240; |
|
49 | x=rand()%240; | |
50 | y=rand()%320; |
|
50 | y=rand()%320; | |
51 | w=rand()%(240-x); |
|
51 | w=rand()%(240-x); | |
52 | if(x>y) |
|
52 | if(x>y) | |
53 | r=(rand()%(y))%(320-y); |
|
53 | r=(rand()%(y))%(320-y); | |
54 | else |
|
54 | else | |
55 | r=(rand()%(x))%(240-x); |
|
55 | r=(rand()%(x))%(240-x); | |
56 | h=rand()%(320-y); |
|
56 | h=rand()%(320-y); | |
57 | t=rand()%(10); |
|
57 | t=rand()%(10); | |
58 | //ili9328paintFilRect(&lcd0,x,y,w,h,rand(),t,rand()); |
|
58 | //ili9328paintFilRect(&lcd0,x,y,w,h,rand(),t,rand()); | |
59 | ili9328paintFilCirc(&lcd0,x,y,r,rand(),t,rand()); |
|
59 | ili9328paintFilCirc(&lcd0,x,y,r,rand(),t,rand()); | |
60 | } |
|
60 | } | |
61 |
|
61 | |||
62 | int main() |
|
62 | int main() | |
63 | { |
|
63 | { | |
64 | uint16_t innerbuffer[16]; |
|
64 | uint16_t innerbuffer[16]; | |
65 | uint16_t outterbuffer[16]; |
|
65 | uint16_t outterbuffer[16]; | |
66 | for(int i=0;i<16;i++)innerbuffer[i]=LCD_COLOR_BLUE; |
|
66 | for(int i=0;i<16;i++)innerbuffer[i]=LCD_COLOR_BLUE; | |
67 | for(int i=0;i<16;i++)outterbuffer[i]=LCD_COLOR_RED; |
|
67 | for(int i=0;i<16;i++)outterbuffer[i]=LCD_COLOR_RED; | |
68 | ili9328paintFilRect(&lcd0,0,0,240,320,LCD_COLOR_CYAN,5,LCD_COLOR_WHITE); |
|
68 | ili9328paintFilRect(&lcd0,0,0,240,320,LCD_COLOR_CYAN,5,LCD_COLOR_WHITE); | |
69 | ili9328paintFilCirc(&lcd0,100,150,40,LCD_COLOR_RED,5,LCD_COLOR_BLUE); |
|
69 | ili9328paintFilCirc(&lcd0,100,150,40,LCD_COLOR_RED,5,LCD_COLOR_BLUE); | |
70 | ili9328paintFilCirc(&lcd0,120,160,120,LCD_COLOR_RED,1,LCD_COLOR_BLUE); |
|
70 | ili9328paintFilCirc(&lcd0,120,160,120,LCD_COLOR_RED,1,LCD_COLOR_BLUE); | |
71 | //ili9328paintFilCirc(&lcd0,150,240,80,LCD_COLOR_RED,2,LCD_COLOR_BLUE); |
|
71 | //ili9328paintFilCirc(&lcd0,150,240,80,LCD_COLOR_RED,2,LCD_COLOR_BLUE); | |
|
72 | monkDemo(); | |||
72 | while(1) |
|
73 | while(1) | |
73 | { |
|
74 | { | |
74 | delay_100us(5000); |
|
75 | delay_100us(5000); | |
75 | gpioset(LED1); |
|
76 | gpioset(LED1); | |
76 | gpioclr(LED2); |
|
77 | gpioclr(LED2); | |
77 | delay_100us(5000); |
|
78 | delay_100us(5000); | |
78 | gpioclr(LED1); |
|
79 | gpioclr(LED1); | |
79 | gpioset(LED2); |
|
80 | gpioset(LED2); | |
80 | } |
|
81 | } | |
81 | printf("hello world\n\r"); |
|
82 | printf("hello world\n\r"); | |
82 | return 0; |
|
83 | return 0; | |
83 | } |
|
84 | } | |
84 |
|
85 | |||
85 |
|
86 | |||
86 |
|
87 | |||
87 |
|
88 | |||
88 |
|
89 | |||
89 |
|
90 | |||
90 |
|
91 | |||
91 |
|
92 | |||
92 |
|
93 |
@@ -0,0 +1,144 | |||||
|
1 | /*------------------------------------------------------------------------------ | |||
|
2 | -- This file is a part of the libuc, microcontroler library | |||
|
3 | -- Copyright (C) 2013, Alexis Jeandet | |||
|
4 | -- | |||
|
5 | -- This program is free software; you can redistribute it and/or modify | |||
|
6 | -- it under the terms of the GNU General Public License as published by | |||
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |||
|
8 | -- (at your option) any later version. | |||
|
9 | -- | |||
|
10 | -- This program is distributed in the hope that it will be useful, | |||
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
|
13 | -- GNU General Public License for more details. | |||
|
14 | -- | |||
|
15 | -- You should have received a copy of the GNU General Public License | |||
|
16 | -- along with this program; if not, write to the Free Software | |||
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
|
18 | ------------------------------------------------------------------------------- | |||
|
19 | -- Author : Alexis Jeandet | |||
|
20 | -- Mail : alexis.jeandet@gmail.com | |||
|
21 | -------------------------------------------------------------------------------*/ | |||
|
22 | #include <widget.h> | |||
|
23 | #include <terminal.h> | |||
|
24 | #include <stdint.h> | |||
|
25 | #include <stdio.h> | |||
|
26 | #include <gpio.h> | |||
|
27 | #include <core.h> | |||
|
28 | ||||
|
29 | int __line__ =0; | |||
|
30 | int __column__=0; | |||
|
31 | int __lineCount__=0; | |||
|
32 | int __columnCount__=0; | |||
|
33 | LCD_t* __LCD__=NULL; | |||
|
34 | ||||
|
35 | sFONT* __font__; | |||
|
36 | ||||
|
37 | int __verticalSpace__=2; | |||
|
38 | int __horizontalSpace__=0; | |||
|
39 | int __verticalMargins__=5; | |||
|
40 | int __horizontalMargins__=5; | |||
|
41 | ||||
|
42 | #define CHARXPOS(charwidth) ((__column__*charwidth)+__horizontalMargins__) | |||
|
43 | #define CHARYPOS(charheight) ((__line__*charheight)+__verticalMargins__+charheight) | |||
|
44 | ||||
|
45 | #define charwidth (__font__->Width+__horizontalSpace__) | |||
|
46 | #define charheight (__font__->Height+__verticalSpace__) | |||
|
47 | ||||
|
48 | int terminal_init(LCD_t* LCD,sFONT* font,streamdevice* strdev) | |||
|
49 | { | |||
|
50 | if((LCD!=NULL) && (font!=NULL) && (strdev!=NULL)) | |||
|
51 | { | |||
|
52 | __LCD__=LCD; | |||
|
53 | __font__=font; | |||
|
54 | __lineCount__ = (LCD->height - (__verticalMargins__*2))/charheight; | |||
|
55 | __columnCount__ = ((LCD->width - (__horizontalMargins__*2))/charwidth)-1; | |||
|
56 | ||||
|
57 | strdev->_stream = (UHANDLE)__LCD__; | |||
|
58 | strdev->write = (write_t)&terminal_write; | |||
|
59 | strdev->read = (read_t)&terminal_read; | |||
|
60 | strdev->setpos = (setpos_t)&terminal_setpos; | |||
|
61 | strdev->streamPt = 0; | |||
|
62 | __line__ = 0; | |||
|
63 | __column__ = 0; | |||
|
64 | __LCD__->paintFilRect(__LCD__,CHARXPOS(charwidth),CHARYPOS(charheight)-charheight,charwidth,charheight,0x0000,0,0x0000); | |||
|
65 | return 1; | |||
|
66 | } | |||
|
67 | return 0; | |||
|
68 | } | |||
|
69 | ||||
|
70 | void terminal_movecursor(int n) | |||
|
71 | { | |||
|
72 | __column__ += n; | |||
|
73 | if(__column__>__columnCount__) | |||
|
74 | { | |||
|
75 | __line__ += (__column__)/__columnCount__; | |||
|
76 | __LCD__->paintFilRect(__LCD__,CHARXPOS(charwidth),CHARYPOS(charheight)-charheight,charwidth*(__columnCount__-__column__),charheight,0x0000,0,0x0000); | |||
|
77 | __line__ = __line__ % __lineCount__; | |||
|
78 | __column__ = __column__ % __columnCount__; | |||
|
79 | } | |||
|
80 | __LCD__->paintFilRect(__LCD__,CHARXPOS(charwidth),CHARYPOS(charheight)-charheight,charwidth,charheight,0x0000,0,0x0000); | |||
|
81 | ||||
|
82 | } | |||
|
83 | ||||
|
84 | int terminal_writenc(char* data, int n) | |||
|
85 | { | |||
|
86 | int l=0; | |||
|
87 | char buffer[2]=" "; | |||
|
88 | while(l<n) | |||
|
89 | { | |||
|
90 | ||||
|
91 | buffer[0]=data[l]; | |||
|
92 | if(buffer[0]=='\n') | |||
|
93 | { | |||
|
94 | __line__= (__line__+1) % __lineCount__; | |||
|
95 | __column__ = 0; | |||
|
96 | }else { | |||
|
97 | if(buffer[0]=='\t') | |||
|
98 | { | |||
|
99 | __line__ += (__column__+3) / __columnCount__; | |||
|
100 | __column__= (__column__+3) % __columnCount__; | |||
|
101 | }else { | |||
|
102 | __LCD__->paintFilRect(__LCD__,CHARXPOS(charwidth),CHARYPOS(charheight)-charheight,charwidth,charheight,0x0000,0,0x0000); | |||
|
103 | __LCD__->paintText(__LCD__,buffer,CHARXPOS(charwidth),CHARYPOS(charheight),__font__,0xFFFF); | |||
|
104 | terminal_movecursor(1); | |||
|
105 | } | |||
|
106 | } | |||
|
107 | l++; | |||
|
108 | } | |||
|
109 | return n; | |||
|
110 | } | |||
|
111 | ||||
|
112 | int terminal_write(streamdeviceptr device,void* data,int size, int n) | |||
|
113 | { | |||
|
114 | return terminal_writenc((char*) data,size*n); | |||
|
115 | } | |||
|
116 | ||||
|
117 | int terminal_read(streamdeviceptr device,void* data,int size, int n) | |||
|
118 | { | |||
|
119 | return n*size; | |||
|
120 | } | |||
|
121 | ||||
|
122 | int terminal_setpos(streamdeviceptr device,int pos) | |||
|
123 | { | |||
|
124 | return 1; | |||
|
125 | } | |||
|
126 | ||||
|
127 | int terminal_close(streamdeviceptr device) | |||
|
128 | { | |||
|
129 | return 1; | |||
|
130 | } | |||
|
131 | ||||
|
132 | ||||
|
133 | ||||
|
134 | ||||
|
135 | ||||
|
136 | ||||
|
137 | ||||
|
138 | ||||
|
139 | ||||
|
140 | ||||
|
141 | ||||
|
142 | ||||
|
143 | ||||
|
144 |
@@ -1,26 +1,45 | |||||
1 | /*------------------------------------------------------------------------------ |
|
1 | /*------------------------------------------------------------------------------ | |
2 | -- This file is a part of the libuc, microcontroler library |
|
2 | -- This file is a part of the libuc, microcontroler library | |
3 | -- Copyright (C) 2012, Alexis Jeandet |
|
3 | -- Copyright (C) 2012, Alexis Jeandet | |
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 | -- the Free Software Foundation; either version 3 of the License, or |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 | -- GNU General Public License for more details. |
|
13 | -- GNU General Public License for more details. | |
14 | -- |
|
14 | -- | |
15 | -- You should have received a copy of the GNU General Public License |
|
15 | -- You should have received a copy of the GNU General Public License | |
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 | -- Author : Alexis Jeandet |
|
19 | -- Author : Alexis Jeandet | |
20 | -- Mail : alexis.jeandet@gmail.com |
|
20 | -- Mail : alexis.jeandet@gmail.com | |
21 | -------------------------------------------------------------------------------*/ |
|
21 | -------------------------------------------------------------------------------*/ | |
22 | #ifndef TERMINAL_H |
|
22 | #ifndef TERMINAL_H | |
23 | #define TERMINAL_H |
|
23 | #define TERMINAL_H | |
|
24 | #include <stdint.h> | |||
24 | #include <widget.h> |
|
25 | #include <widget.h> | |
|
26 | #include <streamdevices.h> | |||
|
27 | #include <genericLCD_Controler.h> | |||
|
28 | #include <fonts.h> | |||
|
29 | ||||
|
30 | int terminal_init(LCD_t* LCD,sFONT* font,streamdevice* strdev); | |||
|
31 | void terminal_movecursor(int n); | |||
|
32 | int terminal_write(streamdeviceptr device,void* data,int size, int n); | |||
|
33 | int terminal_read(streamdeviceptr device,void* data,int size, int n); | |||
|
34 | int terminal_setpos(streamdeviceptr device,int pos); | |||
|
35 | int terminal_close(streamdeviceptr device); | |||
|
36 | ||||
|
37 | ||||
|
38 | ||||
|
39 | ||||
|
40 | ||||
|
41 | ||||
|
42 | ||||
|
43 | ||||
25 |
|
44 | |||
26 | #endif |
|
45 | #endif |
@@ -1,42 +1,42 | |||||
1 | /*------------------------------------------------------------------------------ |
|
1 | /*------------------------------------------------------------------------------ | |
2 | -- This file is a part of the libuc, microcontroler library |
|
2 | -- This file is a part of the libuc, microcontroler library | |
3 | -- Copyright (C) 2012, Alexis Jeandet |
|
3 | -- Copyright (C) 2012, Alexis Jeandet | |
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 | -- the Free Software Foundation; either version 3 of the License, or |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 | -- GNU General Public License for more details. |
|
13 | -- GNU General Public License for more details. | |
14 | -- |
|
14 | -- | |
15 | -- You should have received a copy of the GNU General Public License |
|
15 | -- You should have received a copy of the GNU General Public License | |
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 | -- Author : Alexis Jeandet |
|
19 | -- Author : Alexis Jeandet | |
20 | -- Mail : alexis.jeandet@gmail.com |
|
20 | -- Mail : alexis.jeandet@gmail.com | |
21 | -------------------------------------------------------------------------------*/ |
|
21 | -------------------------------------------------------------------------------*/ | |
22 | #ifndef WIDGET_H |
|
22 | #ifndef WIDGET_H | |
23 | #define WIDGET_H |
|
23 | #define WIDGET_H | |
24 |
#include < |
|
24 | #include <stdint.h> | |
25 |
|
25 | |||
26 | typedef struct widget |
|
26 | typedef struct widget | |
27 | { |
|
27 | { | |
28 | uint16_t Width; |
|
28 | uint16_t Width; | |
29 | uint16_t Height; |
|
29 | uint16_t Height; | |
30 | uint16_t Xpos; |
|
30 | uint16_t Xpos; | |
31 | uint16_t Ypos; |
|
31 | uint16_t Ypos; | |
32 | void (*paint)(); |
|
32 | void (*paint)(); | |
33 | } widget; |
|
33 | } widget; | |
34 |
|
34 | |||
35 |
|
35 | |||
36 |
|
36 | |||
37 |
|
37 | |||
38 |
|
38 | |||
39 |
|
39 | |||
40 | #endif |
|
40 | #endif | |
41 |
|
41 | |||
42 |
|
42 |
General Comments 0
You need to be logged in to leave comments.
Login now