##// END OF EJS Templates
sync
jeandet@pc-de-jeandet3.LAB-LPP.LOCAL -
r45:e203e69902ca dev_alexis
parent child
Show More
@@ -85,7 +85,7 void bsp_uart_init()
85 85 }
86 86 else
87 87 {
88 uartopenandconfig(2,uartparitynone | uart8bits | uartonestop,115200,PB10,PB11,-1,-1);
88 uartopenandconfig(uart3,uartparitynone | uart8bits | uartonestop,115200,PB10,PB11,-1,-1);
89 89 }
90 90 }
91 91
@@ -4,7 +4,8 SUBDIRS += QtTest/test.pro \
4 4 SOLAR_PSU_HELLO/hello.pro \
5 5 SDCARD \
6 6 STM32F4IT \
7 BeagleSynthHello
7 BeagleSynthHello \
8 ../../../home/jeandet/hello
8 9
9 10
10 11
@@ -31,6 +31,18
31 31
32 32 #define _delay_(del) for(volatile int _d_e_l_=0;_d_e_l_<(del);_d_e_l_++);
33 33
34 #define ilipaintLine(LCD,X,Y,W,buffer,buffsize) \
35 for(int l=0;l<1;l++)\
36 {\
37 ili9328setFrame(LCD,X,Y,W,1);\
38 int rem=(W)%buffsize;\
39 if(rem)LCD->interface->writeGRAM(buffer,rem);\
40 for(int i=rem;i<(W);i+=buffsize)\
41 {\
42 LCD->interface->writeGRAM(buffer,buffsize);\
43 }\
44 }
45
34 46 void ili9328setGRAMaddress(LCD_t* LCD,uint16_t Haddress,uint16_t Vaddress)
35 47 {
36 48 LCD->interface->writereg(ILI9328_REGISTER_HORIZONTALGRAMADDRESSSET,Haddress);
@@ -71,12 +83,30 void ili9328paint(LCD_t* LCD,void* buffe
71 83
72 84 void ili9328paintFilCircMidPoint(LCD_t* LCD,uint16_t Xpos,uint16_t Ypos,uint16_t r,uint32_t contColor,uint16_t contSz,uint32_t fillColor)
73 85 {
86 //Based on the mid point circle algorithm from Wikipedia
87 //http://en.wikipedia.org/wiki/Midpoint_circle_algorithm
88
74 89 if(contSz<r)
75 90 {
76 for(int i=0;i<(r/2);i++)
77 {
91 int f = 1 - r;
92 int ddF_x = 1;
93 int ddF_y = -2 * r;
94 int x = 0;
95 int y = r;
96 uint16_t tmp1[16];
97 uint16_t tmp2[16];
98 for(int i=0;i<16;i++)tmp1[i]=fillColor;
99 for(int i=0;i<16;i++)tmp2[i]=contColor;
100 ilipaintLine(LCD,Xpos-r,Ypos,2*r,tmp1,16);
101 ilipaintLine(LCD,Xpos-r,Ypos+1,2*r,tmp1,16);
102 ilipaintLine(LCD,Xpos-1,Ypos+r,2,tmp1,16);
103 ilipaintLine(LCD,Xpos,Ypos-r,2,tmp1,16);
104 setPixel(x0, y0 + radius);
105 setPixel(x0, y0 - radius);
106 setPixel(x0 + radius, y0);
107 setPixel(x0 - radius, y0);
78 108
79 }
109
80 110 }
81 111
82 112 }
@@ -38,17 +38,34 void SysTick_Handler(void)
38 38 tickCounter+=1;
39 39 }
40 40
41 void delay_us(uint32_t value)
42 {
43 extern uint32_t currentCpuFreq;
44 if(value)
45 {
46 uint32_t tickperus=currentCpuFreq/(1000*10);
47 uint32_t SysTickSnap = SysTick->VAL+((value%100)*tickperus);
48 uint32_t targetVal=tickCounterSnap +(value/100);
49 if(targetVal < tickCounterSnap)
50 {
51 while(tickCounter > targetVal);
52 }
53 while((tickCounter < targetVal) | (SysTick->VAL<SysTickSnap));
54 }
55 }
56
41 57 void delay_100us(uint32_t value)
42 58 {
43 59 if(value)
44 60 {
45 61 uint32_t tickCounterSnap = tickCounter;
62 uint32_t SysTickSnap = SysTick->VAL;
46 63 uint32_t targetVal=tickCounterSnap +(value);
47 64 if(targetVal < tickCounterSnap)
48 65 {
49 66 while(tickCounter > targetVal);
50 67 }
51 while(tickCounter < targetVal);
68 while((tickCounter < targetVal) | (SysTick->VAL<SysTickSnap));
52 69 }
53 70 }
54 71
General Comments 0
You need to be logged in to leave comments. Login now