Diese Library dient zum anzeigen von Bildern, die auf einer SD-Karte gespeichert sind.
Im Moment werden 3 Bildformate unterstützt :
1. = 16Bit (RGB565) – Image-Files (*.img)
2. = Bitmap Files (BMP, 24bpp, unkomprimiert) (*.bmp)
3. = JPG Files (*.jpg)
Für das Format Nr. 1 habe ich das PC-Programm “ImageGenerator” geschrieben. Das wandelt beliebige BMP-Files in das RGB565-Format um.
Geschwindigkeit :
Ein Image-Bild mit 240×320 Pixel (16bpp) wird in ca. 100ms gezeichnet
Ein BMP-Bild mit 240×320 Pixel (24pbb) wird in ca. 165ms gezeichnet
Ein JPG-Bild mit 240×320 Pixel wird in ca. 580ms gezeichnet
Speicherverbrauch :
Ein Image-Bild mit 240×320 Pixel braucht 153.600 Bytes
Ein BMP-Bild mit 240×320 Pixel braucht 230.454 Bytes
Ein JPG-Bild mit 240×320 Pixel braucht ca. 15.323 Bytes
Es wird für die Anzeige die LIB : “STM32_UB_LCD_ST7783″ und für die SD-Karte die LIB “STM32_UB_FATFS” benötigt.
Beispielbild :
Voraussetzungen :
1 2 | Benutzte Module der CooCox-IDE : keine Benutzte Librarys : STM32_UB_LCD_ST7783, STM32_UB_FATFS |
Enumerationen :
1 2 3 4 5 6 7 8 9 10 11 12 | typedef enum { PICTURE_OK =0, PICTURE_MEDIA_ERR, PICTURE_FILE_ERR, PICTURE_SIZE_ERR, PICTURE_ID_ERR, PICTURE_HEAD_ERR, PICTURE_WIDTH_ERR, PICTURE_HEIGHT_ERR, PICTURE_BPP_ERR, PICTURE_COMPR_ERR, }PICTURE_ERR_t; |
Funktionen :
1 2 3 | PICTURE_ERR_t UB_Picture_DrawImage(const char* name, uint16_t xpos, uint16_t ypos); // zeichnet ein Image-File von SD-Karte PICTURE_ERR_t UB_Picture_DrawBmp(const char* name, uint16_t xpos, uint16_t ypos); // zeichnet ein BMP-File von SD-Karte PICTURE_ERR_t UB_Picture_DrawJpg(const char* name, uint16_t xpos, uint16_t ypos); // zeichnet ein JPG-File von SD-Karte |
Beispiel :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | //-------------------------------------------------------------- // File : main.c // Datum : 13.03.2013 // Version : 1.0 // Autor : UB // EMail : mc-4u(@)t-online.de // Web : www.mikrocontroller-4u.de // CPU : STM32F4 // IDE : CooCox CoIDE 1.7.0 // Module : CMSIS_BOOT, M4_CMSIS_CORE // Funktion : Demo der Picture Library // Hinweis : Diese zwei Files muessen auf 8MHz stehen // "cmsis_boot/stm32f4xx.h" // "cmsis_boot/system_stm32f4xx.c" //-------------------------------------------------------------- #include "main.h" #include "stm32_ub_picture.h" int main(void) { FATFS_t check_fat; SystemInit(); // Quarz Einstellungen aktivieren // Init vom LCD (Landscape Mode) UB_LCD_Init(); UB_LCD_SetMode(LANDSCAPE); UB_LCD_FillScreen(RGB_COL_GREEN); // Init der FATFS-Lib UB_Fatfs_Init(); // SD-mounten check_fat=UB_Fatfs_Mount(MMC_0); if(check_fat==FATFS_OK) { // Windows-BMP von SD-Karte laden // und auf dem Display anzeigen UB_Picture_DrawBmp("emo.bmp",0,0); UB_Fatfs_UnMount(MMC_0); } while(1) { } } |
Hier die Library zum Download :
Hier der komplette CooCox-Projektordner zum Download :
Hier der Link zu dem PC-Programm :
Hinweis: man muss unbedingt auf die Orientierung achten, 240×320 sind nicht 320×240
BMPs funktionieren problemlos, bei JPGs ist die Lib etwas zickig und macht bei mir manchmal Anzeigefehler rein (notfalls mit Paint in BMP wandeln), IMG-Files hatte ich keine leider da.
Bitte überprüfe den Imagegenerator Downloadlink, bei mir führt er ins Leere.
Danke für den Hinweis, Link habe ich aktuallisiert.
Ändere bitte mal das “unkompremiert” nach “unkomprimiert”. Danke.