ARM STM32F4DISCOVERY board II.
ARM STM32F4DISCOVERY board II.
ARM STM32F4_DISCOVERY board II.
Mivel 2 nap alatt nem tudtam rájönni mért nem működik az oldal elődje!?
Próbálom itt folytatni! Hátha?
Előzmények a hasonló nevű oldalon.
Röviden a névadó fejlesztő laphoz akarok Grafikus kijelzőt illeszteni.
PQG2412A SERIES (240 * 128 DOTS) PIN CONNECTIONS
http://www.palmtech.com.tw/rimages/757/P37-PQG2412A.pdf
Mivel 2 nap alatt nem tudtam rájönni mért nem működik az oldal elődje!?
Próbálom itt folytatni! Hátha?
Előzmények a hasonló nevű oldalon.
Röviden a névadó fejlesztő laphoz akarok Grafikus kijelzőt illeszteni.
PQG2412A SERIES (240 * 128 DOTS) PIN CONNECTIONS
http://www.palmtech.com.tw/rimages/757/P37-PQG2412A.pdf
Eljutottam a szöveges (Text) üzemmód CGRam feltöltés megoldásáig.
Mivel ez a kijelző HW-ból 8*8 pont mátrixot tud kezelni.
És ilyen fontkészlet már van, a beépítet CGROM területen. (Csúnya összenyomót betűk!)
Inkább 16*8-as betűkészletet alkalmazok. ImTilk töl kapott font: http://www.4shared.com/file/HUZZRlhF/en ... efurl=d1ur
T6963C LCD Graphics Controller Chip
http://www.lcd-module.de/eng/pdf/zubehoer/t6963.pdf 23. oldal:
Offset Register (lower 5-bits only) Character Code (00~FF) 0 – 255 karaktert tud megcímezni.
Mi ezt a területet kettéosztjuk, így látszólag lesz 2*128 karakterünknek hely.
CGRAM Első 128*8 Bytebe töltjük a 16 pontsor magas karakterünknek a felső felét.
Amikre a szokásos módon ASCII kódjukkal hivatkozunk.
A CGRAM másik felébe kerül a karakter mátrix alsó fele, amit (ASCII kód + 128)-al címzünk.
És kirakjuk az előző alá.
Így lesz Hardveres 16pont magas, 8 pont széles karakterünk.
Ami legalább jól fog kinézni.
Elférnek a nagybetűk fölé az ékezetek, és a kisbetűk vonal alá nyúló részeit sem kell feltolnunk a szívükbe!
A megoldás majd tesztelés után idekerül.
Mivel ez a kijelző HW-ból 8*8 pont mátrixot tud kezelni.
És ilyen fontkészlet már van, a beépítet CGROM területen. (Csúnya összenyomót betűk!)
Inkább 16*8-as betűkészletet alkalmazok. ImTilk töl kapott font: http://www.4shared.com/file/HUZZRlhF/en ... efurl=d1ur
T6963C LCD Graphics Controller Chip
http://www.lcd-module.de/eng/pdf/zubehoer/t6963.pdf 23. oldal:
Offset Register (lower 5-bits only) Character Code (00~FF) 0 – 255 karaktert tud megcímezni.
Mi ezt a területet kettéosztjuk, így látszólag lesz 2*128 karakterünknek hely.
CGRAM Első 128*8 Bytebe töltjük a 16 pontsor magas karakterünknek a felső felét.
Amikre a szokásos módon ASCII kódjukkal hivatkozunk.
A CGRAM másik felébe kerül a karakter mátrix alsó fele, amit (ASCII kód + 128)-al címzünk.
És kirakjuk az előző alá.
Így lesz Hardveres 16pont magas, 8 pont széles karakterünk.
Ami legalább jól fog kinézni.
Elférnek a nagybetűk fölé az ékezetek, és a kisbetűk vonal alá nyúló részeit sem kell feltolnunk a szívükbe!
A megoldás majd tesztelés után idekerül.
ImTilk-nek!
Itt vannak az Hu16x8-as ékezetes karakterek:
Végre 1 karakterkészlet, ami jól is néz ki!
És tudom HW-ből kezelni a Text lapon.
Itt vannak az Hu16x8-as ékezetes karakterek:
Kód: Egész kijelölése
/**
******************************************************************************
* @file fonts.h
* @author MCD Application Team
* @version V5.0.2
* @date 05-March-2012
* @brief Header for fonts.c file
******************************************************************************
*/
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __FONTS0_H
#define __FONTS0_H
#ifdef __cplusplus
extern "C" {
#endif
/* Includes ------------------------------------------------------------------*/
#include <stdint.h>
/** @defgroup FONTS_Exported_Constants
* @{
*/
#define HU_A 127 /*"Á",95+32 */
#define HU_E 128 /*"É",96*/
#define HU_I 129 /*"Í",97*/
#define HU_O 130 /*"Ó",98*/
#define HU_OO 131 /*"Ö",99*/
#define HU_EO 132 /*"Ő",100*/
#define HU_U 133 /*"Ú",101*/
#define HU_UU 134 /*"Ü",102*/
#define HU_EU 135 /*"Ű",103*/
#define HU_a 136 /*"á",104+32 */
#define HU_e 137 /*"é",105*/
#define HU_i 138 /*"í",106*/
#define HU_o 139 /*"ó",107*/
#define HU_oo 140 /*"ö",108*/
#define HU_eo 141 /*"ő",109*/
#define HU_u 142 /*"ú",110*/
#define HU_uu 143 /*"ü",111*/
#define HU_eu 144 /*"ű",112*/
#define LINE(x) ((x) * (((sFONT *)LCD_GetFont())->Height))
/** @defgroup FONTS_Exported_Types
* @{
*/
typedef struct _tFont{
const uint8_t *table;
uint8_t Width; // szélesség
uint8_t Height; // magasság
uint8_t nCHR; // n CHR van a tömbben */
} sFONT;
extern sFONT HU16x8;
#ifdef __cplusplus
}
#endif
#endif /* __FONTS_H */
Kód: Egész kijelölése
/**
******************************************************************************
* @file fonts.c
* @author MCD Application Team
* @version V5.0.2
* @date 05-March-2012
* @brief This file provides text fonts for STM32xx-'s LCD driver.
******************************************************************************
*/
/* Includes ------------------------------------------------------------------*/
#include "fonts0.h"
// átneveztem
const uint8_t hu16x8_fonts_table[] = {
// Ezt hozzácsapod az English fontok végéhez:
/* ékezetes betük */
0x0C,0x18,0x00,0x18,0x3C,0x66,0x66,0x66,0x7E,0x66,0x66,0x66,0x00,0x00,0x00,0x00,/*"Á",95 */
0x0C,0x18,0x00,0x7E,0x60,0x60,0x60,0x7C,0x60,0x60,0x60,0x7E,0x00,0x00,0x00,0x00,/*"É",96*/
0x0C,0x18,0x00,0x3C,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00,/*"Í",97*/
0x0C,0x18,0x00,0x3C,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x3C,0x00,0x00,0x00,0x00,/*"Ó",98*/
0x00,0x66,0x00,0x3C,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x3C,0x00,0x00,0x00,0x00,/*"Ö",99*/
0x33,0x66,0x00,0x3C,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x3C,0x00,0x00,0x00,0x00,/*"Ő",100*/
0x0C,0x18,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x3C,0x00,0x00,0x00,0x00,/*"Ú",101*/
0x00,0x66,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x3C,0x00,0x00,0x00,0x00,/*"Ü",102*/
0x33,0x66,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x3C,0x00,0x00,0x00,0x00,/*"Ű",103*/
0x00,0x00,0x0C,0x18,0x00,0x3C,0x06,0x06,0x3E,0x66,0x66,0x3E,0x00,0x00,0x00,0x00,/*"á",104 */
0x00,0x00,0x0C,0x18,0x00,0x3C,0x66,0x66,0x7E,0x60,0x60,0x3C,0x00,0x00,0x00,0x00,/*"é",105*/
0x00,0x00,0x0C,0x18,0x00,0x78,0x18,0x18,0x18,0x18,0x18,0x7E,0x00,0x00,0x00,0x00,/*"í",106*/
0x00,0x00,0x0C,0x18,0x00,0x3C,0x66,0x66,0x66,0x66,0x66,0x3C,0x00,0x00,0x00,0x00,/*"ó",107*/
0x00,0x00,0x00,0x36,0x00,0x3C,0x66,0x66,0x66,0x66,0x66,0x3C,0x00,0x00,0x00,0x00,/*"ö",108*/
0x00,0x00,0x36,0x6C,0x00,0x3C,0x66,0x66,0x66,0x66,0x66,0x3C,0x00,0x00,0x00,0x00,/*"ő",109*/
0x00,0x00,0x0C,0x18,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x3E,0x00,0x00,0x00,0x00,/*"ú",110*/
0x00,0x00,0x00,0x36,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x3E,0x00,0x00,0x00,0x00,/*"ü",111*/
0x00,0x00,0x36,0x6C,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x3E,0x00,0x00,0x00,0x00,/*"ű",112*/
0x06,0x09,0x09,0x06,0x3C,0x66,0x66,0x60,0x60,0x66,0x66,0x3C,0x00,0x00,0x00,0x00,/*"Cfok",113*/
};
sFONT HU16x8 = {
hu16x8_fonts_table, // *table;
8, // Width széles
16, // Height magas
113 + 1, // nCHR 0 - 113 CHR
};
És tudom HW-ből kezelni a Text lapon.
Kód: Egész kijelölése
// STRING
uint8_t hu[2] = {0, 0};
uint8_t hus[] = {'M', HU_a, 's', 'o', 'd', 'i', 'k', ' ', 's', 'o', 'r', 0};
// Á r v í z t ű r ő t ü k ö r f ú r ó g é p
uint8_t huss[] = {HU_A,'r','v',HU_i,'z',' ','t',HU_eu,'r',HU_eo,' ','t',HU_uu,'k',HU_oo,'r',' ','f',HU_u,'r',HU_o,'g',HU_e,'p',0};
A hozzászólást 1 alkalommal szerkesztették, utoljára kapu48 2012. szeptember 21. péntek, 9:41-kor.
Hú de jó köszi
Nagy segítség ...
Tegnap meg ma kevés meló volt, úgyhogy úgy néz ki sikerült megkreálnom az új nyákom terveit... Ellenőrzés van még hátra, remélem szombaton le is tudom "gyártani"...
Hihetetlen, hogy mennyire bonyis a lábkiosztás megtervezése, nagyon oda kell figyelni. Marha érdekesek ezek a mikrokontrollerek, egyes lábaknak sok funkciójuk lehet, és egyes funkciók több lábon is lehetnek, amit szoftverből lehet konfigurálni, hogy éppen melyik lábon van az adott funkció a lehetőségek közül. Ha figyelmetlen az ember, simán ütközhet pl. akár 2 spi busz is. Sose nyomtattam még ki adatlapot, de most a lábkiosztás részt muszáj volt, hogy átlássak mindent rendesen
Ha megvagyok mindenképp jelentkezem, szeretnék én is jól bekommentált forrásokkal segíteni másoknak, meg tervezek egy videót is csinálni, mit is tud a kicsikénk...
Nagy segítség ...
Tegnap meg ma kevés meló volt, úgyhogy úgy néz ki sikerült megkreálnom az új nyákom terveit... Ellenőrzés van még hátra, remélem szombaton le is tudom "gyártani"...
Hihetetlen, hogy mennyire bonyis a lábkiosztás megtervezése, nagyon oda kell figyelni. Marha érdekesek ezek a mikrokontrollerek, egyes lábaknak sok funkciójuk lehet, és egyes funkciók több lábon is lehetnek, amit szoftverből lehet konfigurálni, hogy éppen melyik lábon van az adott funkció a lehetőségek közül. Ha figyelmetlen az ember, simán ütközhet pl. akár 2 spi busz is. Sose nyomtattam még ki adatlapot, de most a lábkiosztás részt muszáj volt, hogy átlássak mindent rendesen
Ha megvagyok mindenképp jelentkezem, szeretnék én is jól bekommentált forrásokkal segíteni másoknak, meg tervezek egy videót is csinálni, mit is tud a kicsikénk...
Készült pár kép:
[img]
https://docs.google.com/open?id=0B0MXhK ... 1cyYV8xdjQ
https://docs.google.com/open?id=0B0MXhK ... nB5alVMVEU
[/img]
(A dátum az nem lett be állitv)
[img]
https://docs.google.com/open?id=0B0MXhK ... 1cyYV8xdjQ
https://docs.google.com/open?id=0B0MXhK ... nB5alVMVEU
[/img]
(A dátum az nem lett be állitv)
Ez az első próbálkozásom a Google Drive könyvtárral.
Még nem igazán ismerem ki magam benne!
Akkor keresek másik tármegosztó helyet.
Google Drive Windows rendszerre:
https://tools.google.com/dlpage/drive/index.html 5 GB ingyenes tárhely
Valamit ír a fájl megosztásról, de akkor a partnernek is kel regisztrálni tárhelyet.
Amit te használsz: 4shared.com/
Ez fizetős?
ÁÁ Sikerült kirakni!
Hát? Ez a fiók meg mindent megmutat, ami benne van!?
Még nem igazán ismerem ki magam benne!
Akkor keresek másik tármegosztó helyet.
Google Drive Windows rendszerre:
https://tools.google.com/dlpage/drive/index.html 5 GB ingyenes tárhely
Valamit ír a fájl megosztásról, de akkor a partnernek is kel regisztrálni tárhelyet.
Amit te használsz: 4shared.com/
Ez fizetős?
ÁÁ Sikerült kirakni!
Hát? Ez a fiók meg mindent megmutat, ami benne van!?
Most betöltjük a CGRAM területre a fentebb összerakott : hu16x8_fonts_table karakter táblát.
Ezek lesznek a fenti képeken látható karakterek.
Kód: Egész kijelölése
/**
sFONT HU16x8 = {
hu16x8_fonts_table, // *table;
8, // Width széles
16, // Height magas
112, // nCHR 0 - 112 CHR
};
* Character GENERATOR RAM Page Upload > fonts_table
* if 16*8font, divide 2*(8*8) CGRAM Area
* destination cg_ram
*/
void GLCD_Load_CGRAM(sFONT fonts_table, uint8_t cg_ram){
uint16_t i;
uint8_t j;
uint8_t ib;
uint16_t it = 0;
if (cg_ram){ // ? 1 CGRAM Bankválasztás
GLCD_SetOffsetRegister(GLCD_CG_RAM_OFFSET2);
cgram_home = GLCD_CG_RAM_HOME2; //0x7800 - 0x7FFF
}else{ // ? 0
GLCD_SetOffsetRegister(GLCD_CG_RAM_OFFSET1);
cgram_home = GLCD_CG_RAM_HOME1; //0x7000 - 0x77FF
}
// ? Karakter felső 8 Byte
GLCD_WriteData2(cgram_home, T6963CMD_SET_ADDRESS_POINTER); // destination address
glcd_add = CGRM_ADDR; // Addres P. CGRAMRA mutat
// Karakter felső 8 Byte
GLCD_WriteC_D(T6963CMD_SETDataAutoWRITE, GLCD_CMD, STATUSCHECK_MASK3);
it = fonts_table.nCHR << 4; // CHR num * 16
for(i = 0; i < it - 8; i += 16){ // source address -> nCHR*8-ig
for(j = 0; j < 8; j++){ // CHR felső 8 Byte
ib = fonts_table.table[i + j];
GLCD_WriteC_D(ib, GLCD_DATA, WRCHECK_MASK8);
}
}
GLCD_WriteC_D(T6963CMD_AUTORESET, GLCD_CMD, STATUSCHECK_MASK3);
// Karakter alsó 8 Byte
if (fonts_table.Height > 8){
glcd_chr_vmode = 1; // Character 16*8
GLCD_WriteData2(cgram_home + CHR_SHIFT, T6963CMD_SET_ADDRESS_POINTER); // destination address
glcd_add = CGRM_ADDR;
GLCD_WriteC_D(T6963CMD_SETDataAutoWRITE, GLCD_CMD, STATUSCHECK_MASK3);
for(i = 8 ; i < it; i += 16){ // source address, nCHR*8+1024-ig.
for(j = 0; j < 8; j++){ // CHR felső 8 Byte
ib = fonts_table.table[i + j];
GLCD_WriteC_D(ib, GLCD_DATA, WRCHECK_MASK8);
}
}
GLCD_WriteC_D(T6963CMD_AUTORESET, GLCD_CMD, STATUSCHECK_MASK3);
}
if (display_mode < 10){ // Ha kel átállítja CGRAM használatára a kijelzőt
display_mode += 10; // Tároljuk Az aktuális display_mode sorszámot
GLCD_DisplayMode(display_mode); // CGRAM-ra vált
}
}
Ezek lesznek a fenti képeken látható karakterek.
Kihasználva az előző képeknek készített tárterületet, bele húztam az egész aktuális project mappát.
http://www.4shared.com/folder/pA5MP9Lt/ ... oggle.html
(Alkalmanként majd frissítem az: scr könyvtár tartalmát)
Akit esetleg mégis érdekelne ez a téma, nézelődhet, ismerkedhet, akár ki is próbálhatja.
De vegye figyelembe, hogy a programírás mindig előrébb van, mint a tesztelés!
Mivel ez még nem kész, hanem fejlődő project.
(Az előkerülő hibák folyamatosan javítva.)
Ezért csak bemutató jelegű, semmi felelősséget nem vállalok a működéséről!
Kérdéseket, tanácsokat, ötleteket szívesen várom!
(Közben észrevette, hogy a: ! -jel, alacsonyabb 1 sorral? )
http://www.4shared.com/folder/pA5MP9Lt/ ... oggle.html
(Alkalmanként majd frissítem az: scr könyvtár tartalmát)
Akit esetleg mégis érdekelne ez a téma, nézelődhet, ismerkedhet, akár ki is próbálhatja.
De vegye figyelembe, hogy a programírás mindig előrébb van, mint a tesztelés!
Mivel ez még nem kész, hanem fejlődő project.
(Az előkerülő hibák folyamatosan javítva.)
Ezért csak bemutató jelegű, semmi felelősséget nem vállalok a működéséről!
Kérdéseket, tanácsokat, ötleteket szívesen várom!
(Közben észrevette, hogy a: ! -jel, alacsonyabb 1 sorral? )
Találtam a Hobbi Elektronika oldalán, 1 kezdő Ismertetőt a témámhoz!
(Ez a kisebbik testvére az STM32F4DISCOVERY boardnak.)
De a működése és felépítése nagyon hasonló. Kevesebb kiegészítő HW körítéssel.
STM32 Discovery Kit programozása:
http://www.hobbielektronika.hu/cikkek/s ... .html?pg=1
Nagyon jó!
Az elejéről kezdi a Project építés ismertetését. (Remélem lesz folytatása!)
(Ezek alapján már lehet, hogy érthetőbb lesz az én ügyködésem is! Mivel én bizony belevágtam a sűrűjébe.)
(Ez a kisebbik testvére az STM32F4DISCOVERY boardnak.)
De a működése és felépítése nagyon hasonló. Kevesebb kiegészítő HW körítéssel.
STM32 Discovery Kit programozása:
http://www.hobbielektronika.hu/cikkek/s ... .html?pg=1
Nagyon jó!
Az elejéről kezdi a Project építés ismertetését. (Remélem lesz folytatása!)
(Ezek alapján már lehet, hogy érthetőbb lesz az én ügyködésem is! Mivel én bizony belevágtam a sűrűjébe.)
Hi ImTilk!
Hátha tudod hasznát venni.
STM32F4 Adapter Board. Version 1. 16 Bites LCD
https://sites.google.com/site/miguelmor ... pter-board
http://www.element14.com/community/grou ... 2d-tft-lcd
Hátha tudod hasznát venni.
STM32F4 Adapter Board. Version 1. 16 Bites LCD
https://sites.google.com/site/miguelmor ... pter-board
http://www.element14.com/community/grou ... 2d-tft-lcd