Fórum témák
» Több friss téma |
Nem pic, de felhasználhatod forrásként, adaptálhatod picre:
Bővebben: Link bmp-t, jpg-t tud, vagyis "bármivel" szerkesztheted a képed
Köszi!
Én valami olyasmit keresnék, ami a mikrokontroller számára előkészített kódot közvetlenül betölti az MPLAB-ba. De ha nagyon nincs más, akkor megpróbálok ebből kihozni valamit!
Ez elég tág fogalom, miből mit akarsz...
Ha pl képfájlból akarsz C forrást akkor pl Bővebben: Link
Van a microchip-től egy olyan, hogy Graphics Resource Converter. Pl az MLA része, de talán a harmony-ban is benne van. Az tud ilyet, képeket, fontokat konvertál bináris állománnyá, amit utána használni lehet a programban.
image2lcd a neked kellő SW.
Köszi a válaszokat!
Üdv!
Van egy 320*480 as ILI9488 TFT-tm, mindenféle kiegészítő panel nélkül. Szeretnék csinálni egy fejlesztőpanelt hozzá, és arra lennék kíváncsi, hogy érdemes-e hozzá tenni flash memóriát? (Ahogy néztem a kiegészítőpaneles kijelzőket ott szinte mindegyiken volt.) A hozzászólás módosítva: Szept 25, 2019
Sziasztok!
PIC24EP.. használatával hajtok meg RA8875 vezérlős TFT-t. BMP kép kirajzolásával kapcsolatban lennének kérdéseim. Sebeség és helytakarékosság miatt csak RGB332 kódolást használnék, viszont nem találok olyan konvertert ami ezt képes lenne megcsinálni a bmp-ből. Hiába mentem a fáljt képszerkesztőben csak 256 színnek, akkor is color palette-t használ a fáljban. Csinált már valaki ilyet?
Az st oldaláról (e-mail címes regsztráció után) után letölthetőek a különböző stm32 mikrovezérlőcsaládokhoz tartozó firmware csomagok. Ez tartalmaz egy windows alatt futtatható BmpCvtST.exe nevű programot. Ezzel lehet mindenfajta bitmélységre konvertálni (a 8 bitesek közül választható a 233, 323, 332 változat is) konvertálni, ráadásul C forrásfájlba is tud menteni.
Köszönöm a gyors választ, megnéztem a programot, jó kis progi, de nem egészen erre gondoltam. Azt szeretném, ha nem lenne paletta a bmp fájlban, hanem a bittérképben közvetlenül a pixelek színei RGB332 formátumban lennének. Ezt nem tudtam megoldani a BmpCvtST.exe -vel. Vagy valamit rosszul csináltam? Tudnia kéne ezt?
Nem tudom te melyik programot nézted, de ez nekem RGB332-nek tünik (a mellékelt képen).
Ha bele is teszi a palettát, a C forrásból könnyen ki tudod törölni. A hozzászólás módosítva: Feb 16, 2020
Igen, ezt használom.
A csatolt képen egy 4x4 pixeles kép van, és ennek a konvertált formája. A kijelölt 16 byte a bittérkép, de ott nem azt látom, amit várnék: 8x 0xE0 (red) és 8x 0xFF (white).
Csináltam én is egy próbát a 2x2 pixeles képpel. C fájlként mentve a mellékletben levőt kaptam, ahol a pixel értékek: 0xFF, 0xFF, 0x03, 0x03
Köszönöm! Találtam egy újabb verziót, (5.32) és ott már több opció van. Amit először próbáltam az még nem is c fáljba mentett.
Közben volt időm kicsit próbálkozni.
Próbáltam az options menüben a big endian módot is, de sehogy nem jön ki az R3 G3 B2 sorrend. Mindenáron Bx Gy Rz -t csinál a program... ahogy nálad is. Pedig az RA8875 -el ez volna egyszerű, mint a csatolt képen. Közben megnézem hogy a PIC24EP.. -n hány utasításciklusból tudom leggyorsabban megfordítani a bitsorrendet. A hozzászólás módosítva: Feb 17, 2020
Az a legegyszerűbb, ha írsz egy saját konverter programot. Az pontosan azt fogja csinálni, amit te akarsz. Pl. Visual Basicben nem nagy cucc.
Sőt megírhatja a mikrovezérlőre is akár. STM32-re én megírtam a 24bites BMP -> 16 bites C forrás átalakítót. Szerintem minimális módosítással átírható PIC-re is, a Color888to565 függvény meg könnyen átalakítható az igényelt Color888to332-re.
Próbáld ki ezt is:
image2lcd SSD1963-hoz használtam, nekem bevált.
Köszönöm mindenkinek a segítséget, végül írtam saját programot rá.
Sziasztok!
Működik rendesen a PIC24EP és RA8875 páros kommunikáció ha egyszerűen a TRIS PORT és LAT regisztereket használom, de a PMP perifériát nem tudom működésre bírni. Nincs valakinek működő kódrészlete? Init:
És így próbálom írni: (az else ágban rendesen működik, de ha bekapcsolom PMP -t, akkor szkóppal sem látok semmi mozgást)
PMCONbits.PMPEN = 1; //On helyett nem PMCONbits.ON = 1; lenne a helyes? Most néztem meg az adatlapban.
A hozzászólás módosítva: Márc 14, 2020
Jogos én a sima PIC24 adatlapját néztem. Az init kódod jónak tűnik.
Én a helyedben 0xAA és 0x55 írnék az adat regiszterbe. Hogy van e mozgás az adat buszon. Írtad, hogy nem láttál semmit. Sanszos hogy a PMP nincs engedélyezve. Én ilyenkor a konfig regisztert is vissza szoktam olvasni. Vagy debuggerrel megnézni.
Igen, ezeket néztem.
Nekem az sem világos, hogy egyszerűen a PMDOUT1 reg írásával már indul is a kommunikáció, vagy kell még valamit beállítani? Egyáltalán a PMDOUT -ba kell írni? Neten se találtam példa kódot...
PIC32MX esetén nekem ennyi volt az init:
///***************************************************************************** //Configure SSD1963-PIC32PMP //Configure PMP Lines PMCONbits.PTWREN= 1; //Write Enable Strobe ON PMCONbits.PTRDEN= 1; //Read Enable Strobe ON PMCONbits.CSF = 2; //PMCS1,2 as Chip Select PMAENbits.PTEN15= 0; //A15,14,0 = PMP (CS1,CS2, PMA0) PMAENbits.PTEN14= 1; PMAENbits.PTEN13= 0; PMAENbits.PTEN12= 0; PMAENbits.PTEN11= 0; PMAENbits.PTEN10= 0; PMAENbits.PTEN9= 0; PMAENbits.PTEN8= 0; PMAENbits.PTEN7= 0; PMAENbits.PTEN6= 0; PMAENbits.PTEN5= 0; PMAENbits.PTEN4= 0; PMAENbits.PTEN3= 0; PMAENbits.PTEN2= 0; PMAENbits.PTEN1= 0; PMAENbits.PTEN0= 0; //Bus Type and width PMMODEbits.MODE16= 1; //16 bit mode PMMODEbits.MODE= 2; //INTEL Bus Style PMMODEbits.MODE0= 0; PMMODEbits.MODE1=1; //Bus Timing PMMODEbits.WAITB= 0; //3 PMMODEbits.WAITM= 0;//15 PMMODEbits.WAITE= 0;//3 //Switching module ON PMCONbits.ON = 1; PMADDR=0X4000; // És az írás: //Write data 16bit void Write_Data16 (unsigned int Data_16 ) { //PMADDR=0X4000; DC=1; Delay_1us(); PMDIN=Data_16; Delay_1us(); DC=0; } A hozzászólás módosítva: Márc 14, 2020
Köszönöm!
Ez azért jelentős különbség:
Bár nem egészen értem miért IN, de kipróbálom. DMA -val használtad?
A következő kódrészlet egy PIC24 könyvből van. Nem PIC24EP-hez!!!!
De itt is PMDIN-be pakolja a kimenő adatokat. For our convenience, we will also define a couple of constants that will help us, hopefully, make the following code more readable: #define LCDDATA 1 // RS = 1 ; access data register #define LCDCMD 0 // RS = 0 ; access command register #define PMDATA PMDIN1 // PMP data buffer To send each command to the LCD module, we will select the command register (setting the address PMA0 = RS = 0) first. Then we will start a PMP write sequence by depositing the desired command byte in the PMP data output buffer:
Igen, pont most próbáltam ki, ez volt a baj. PMDIN -be kell pakolni a küldendő adatot. Köszi a segítséget! Működik!
Ez tipikus Microchip gondolkodás!!(fordított) Nem egyszer szívtam már meg.
Örülök hogy megy a kódod. |
Bejelentkezés
Hirdetés |