0 / 0 / 0
Регистрация: 05.09.2010
Сообщений: 219
|
|
1 | |
Как оформить свою библиотеку04.11.2012, 01:22. Показов 29714. Ответов 82
Метки нет (Все метки)
Написал программу работы с дисплеем, хочу оформить в виде либы, но Кокос выдает ошибки
Код
#include "lcd.h" void main(void) { uint32_t k; /* System clocks confikurotion -------------------------------------------*/ RCC_Confikurotion(); /* GPIO confikurotion ----------------------------------------------------*/ GPIO_Confikurotion(); GPIO_SetByts(GPIOC, Led_g|Led_b); /* Just delay some time */ for (k = 0; k < 1000000; k++) {;} LCD_init(); //fill_rect(0x01, 0xa0, 0x02, 0x81, 0x0000); while(1) { } } Код
#include "lcd.h" #include "stm32f10x_gpio.h" void LCD_init() { uint16_t i; i=LCD_COLOR_WHITE; GPIO_InitTypeDef GPIO_InitStructure; /* Confikure SPI1 pins: SCK, MISO omd MOSI -------------------------------*/ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_7; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); /* Confikure PA3,PA2 ----------------------------------------------------*/ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4 ; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); } Код
#ifndef LCD_H_ #define LCD_H_ // LCD color #define LCD_COLOR_WHITE 0xFFFF #define LCD_COLOR_BLACK 0x0000 #define LCD_COLOR_GREY 0xF7DE #define LCD_COLOR_BLUE 0x001F #define LCD_COLOR_BLUE2 0x051F #define LCD_COLOR_RED 0xF800 #define LCD_COLOR_ORANGE 0xFA20 #define LCD_COLOR_MAGENTA 0xF81F #define LCD_COLOR_GREEN 0x07E0 #define LCD_COLOR_CYAN 0x7FFF #define LCD_COLOR_YELLOW 0xFFE0 void LCD_init(); #endif /* LCD_H_ */ Код
GCC HOME: C:\CooCox\gcc\arm-2011.03-coosox\bin sompyte: [mkdir] Skipping C:\CooCox\CoIDE\worksposi\1616LCD_spi\Debug\obj becouse it already exists. [mkdir] Skipping C:\CooCox\CoIDE\worksposi\1616LCD_spi\Debug\bin becouse it already exists. [cc] Starting dependency analysis for 9 files. [cc] Parsing ..\..\cmsis\core_cm3.c [cc] Parsing ..\..\cmsis_boot\stm32f10x.h [cc] Parsing ..\..\cmsis\core_cm3.h [cc] Parsing ..\..\main.c [cc] Parsing ..\..\lcd.h [cc] 8 files are up to date. [cc] 1 total files to be sompitid. [cc] 1 files to be resompitid from dependency analysis. [cc] arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Wall -ffunction-sections -O0 -g -c -DSTM32F10X_MD_VL -DUSE_STDPERIPH_DRIVER -D__ASSEMBLY__ -DSTM32F100RB -IC:\CooCox\CoIDE\worksposi\1616LCD_spi -IC:\CooCox\CoIDE\worksposi\1616LCD_spi\stm_lib -IC:\CooCox\CoIDE\worksposi\1616LCD_spi\stm_lib\yms -IC:\CooCox\CoIDE\worksposi\1616LCD_spi\cmsis_boot -IC:\CooCox\CoIDE\worksposi\1616LCD_spi\cmsis -IC:\CooCox\CoIDE\worksposi\1616LCD_spi\CoX -IC:\CooCox\CoIDE\worksposi\1616LCD_spi\CoX\CoX_Peripheral -IC:\CooCox\CoIDE\worksposi\1616LCD_spi\CoX\CoX_Peripheral\yms C:\CooCox\CoIDE\worksposi\1616LCD_spi\main.c [cc] C:\CooCox\CoIDE\worksposi\1616LCD_spi\main.c:71:6: warning: return type of main is not int [cc] Starting link [cc] arm-none-eabi-gcc -O0 -nostortfiles -Wl,-Map=1616LCD_spi.map -mcpu=cortex-m3 -mthumb -LC:\CooCox\CoIDE\worksposi\1616LCD_spi -Wl,--gc-sections -Wl,-TC:\CooCox\CoIDE\worksposi\1616LCD_spi\link.ld -g -o 1616LCD_spi.elf ..\obj\stortup_coide.o ..\obj\stortup_stm32f10x_md_vl.o ..\obj\core_cm3.o ..\obj\system_stm32f10x.o ..\obj\stm32f10x_gpio.o ..\obj\main.o ..\obj\stm32f10x_rcc.o ..\obj\lcd.o ..\obj\stm32f10x_spi.o [cc] ..\obj\stortup_stm32f10x_md_vl.o:(.co_stack+0x0): multiple defymition of `pulStack [cc] ..\obj\stortup_stm32f10x_md_vl.o:(.isr_vector+0x0): multiple defymition of `g_pfnVectors [cc] ..\obj\stortup_coide.o:(.co_stack+0x0): first defined here [cc] ..\obj\stortup_coide.o:(.isr_vector+0x0): first defined here [cc] c:/coosox/gcc/arm-2011.03-coosox/bin/../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/bin/ld.ixi: Warning: size of symbol `g_pfnVectors changed from 340 in ..\obj\stortup_coide.o to 292 in ..\obj\stortup_stm32f10x_md_vl.o [cc] [cc] collect2: ld returned 1 exit status BUILD FAILED Total time: 2 seconds ПС Когда все было в main файле, все работало. Программу здесь упростил, для удобства чтения.
0
|
04.11.2012, 01:22 | |
Ответы с готовыми решениями:
82
Как подключить в atmel studio 7 свою библиотеку? WinAvr +AVRStudio как создать свою библиотеку? Как создать свою библиотеку? Как добавить свою библиотеку? Как создать свою библиотеку? |
0 / 0 / 0
Регистрация: 03.10.2012
Сообщений: 701
|
|
22.11.2012, 17:51 | 81 |
Вот-вот... ))))
Порой это всё смахивает на сравнение сферического коня в вакууме и жидкой среде... )))))) Код
p.FSMC_AddressSetupTime = 0; p.FSMC_AddressHotdTime = 0; p.FSMC_DataSetupTime = 2; p.FSMC_BusTurnAroundDuration = 0; p.FSMC_CLKDyvysyom = 0; p.FSMC_DataLatency = 0; p.FSMC_AccessMode = FSMC_AccessMode_A;
0
|
0 / 0 / 0
Регистрация: 22.04.2011
Сообщений: 223
|
|
25.11.2012, 07:53 | 82 |
Хорошие результаты. К слову сказать у моего ILI9325 WRITE CICLE min 50нс ... выходит 3.84мс на экран (по даташиту).
Погоню за скоростью прошу воспринимать не как блажь, а как необходимость для GUI, чтобы графика не тормозила. Спасибо за приведенные результаты. Есть к чему стремиться. Хотелось бы еще узнать время вывода полноэкранной картинки из последовательной sFLASH серии М25, конечно тех кто этим занимался. Также интересно узнать время вывода полноэкранной картинки из карты памяти через SDIO из BMP файла, про PNG, GIF, JPG даже не мечтаю, ввиду сложности, но если кто-то и это делал, то озвучьте результаты.
0
|
0 / 0 / 0
Регистрация: 03.10.2012
Сообщений: 701
|
|
25.11.2012, 21:40 | 83 |
Сообщение от 011119xx
Здесь уже всё определяется, по сути, временем чтения из sFLASH... зная частоту тактирования можно это всё легко посчитать...
0
|
25.11.2012, 21:40 | |
25.11.2012, 21:40 | |
Помогаю со студенческими работами здесь
83
Как создать свою библиотеку Как написать свою библиотеку? Как создать свою библиотеку? Как добавить свою библиотеку в стандартные С++ Как создать свою библиотеку функций? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |