 |

|
Elektronika.lt portalo forumas
Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo.
Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.
Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius,
kurie nesilaiko forumo taisyklių.
Pastebėjus nusižengimus, prašome pranešti.
Dabar yra 2025 09 13, 08:34. Visos datos yra GMT + 2 valandos.
|
|
|
 |
Forumas » Mikrovaldikliai » Paveiksliuko kodas + C kalba
|
Jūs negalite rašyti naujų pranešimų į šį forumą Jūs negalite atsakinėti į pranešimus šiame forume Jūs negalite redaguoti savo pranešimų šiame forume Jūs negalite ištrinti savo pranešimų šiame forume Jūs negalite dalyvauti apklausose šiame forume
|
|
|
 |
Paveiksliuko kodas + C kalba |
Parašytas: 2006 04 22, 01:00 |
|
|
|
Kadaise kontroleriui ATmega32 buvau parašęs štai tokią programėlę:
http://www.circuit.lt/projektai/lcd/lcd_asm.txt (žiūrėti galą)
Čia paveiksliukas yra paverstas šešioliktainiu kodus ir patalpintas į mikrovaldiklio FLASH atmintį.
Klausimas: kaip tai daroma su C kalba? Gal galima būtų kokį pavyzduką?
Papildomas klausimas: kaip su C kalba nukopijuoti 8 bitų kintamojo bitą ir nusiųsti į portą? Tik su "if() else" ? |
|
|
|
|
 |
 |
Re: Paveiksliuko kodas + C kalba |
Parašytas: 2006 04 22, 10:32 |
|
|
|
BLASTER rašo: |
Klausimas: kaip tai daroma su C kalba? Gal galima būtų kokį pavyzduką? |
Lygiai taip pat. Pasirašai programėlę, kuri failą paverčia į konstantų masyvą. Ir viskas. Gana dažnai tenka tai daryti. Turiu ir softą Perl kalba. Bet tik darbe. Bet pirmadienio nepaimčiau.
BLASTER rašo: |
kaip su C kalba nukopijuoti 8 bitų kintamojo bitą ir nusiųsti į portą? Tik su "if() else" ? |
Be išplėstinės C sintaksės tai neįmanoma.
Bet nebūtinai su if//else. Pvz., kintamojo B jauniausią bitą priskiriu kintamąjam A:
A = A & 0xFE | (B & 0x01); |
|
|
|
|
 |
 |
Re: Paveiksliuko kodas + C kalba |
Parašytas: 2006 04 22, 11:41 |
|
|
|
vakaras rašo: |
Lygiai taip pat. Pasirašai programėlę, kuri failą paverčia į konstantų masyvą. Ir viskas. Gana dažnai tenka tai daryti. Turiu ir softą Perl kalba. Bet tik darbe. Bet pirmadienio nepaimčiau. |
Su programėle tai nėra problemų, ir pats turiu pasirašęs tokią. Mano atveju konvertuojami tik monochrominiai BMP failai, tai ta programėlė dar ir atrenka ir pateikia tik paties vaizdo informaciją.
Man įdomi pati C sintaksė..
Gal kas turi kokį programos gabaliuką, kur 'sukrautas' failo gabalas? Man tik įdomu kaip tai pažymima C kalboje ir kaip po to į tą vietą kreiptis
vakaras rašo: |
A = A & 0xFE | (B & 0x01); |
O čia tai gudriai  |
|
|
|
|
 |
Paveiksliuko kodas + C kalba |
Parašytas: 2006 04 22, 11:59 |
|
|
|
Galiu tik pridurti, kad kai kurie grafikos redaktoriai turi funkciją kuri eksportuoja paveiksliuką kai C kalbos programos fragmentą. |
|
|
|
|
 |
Re: Paveiksliuko kodas + C kalba |
Parašytas: 2006 04 22, 13:21 |
|
|
|
BLASTER rašo: |
Man įdomi pati C sintaksė..
Gal kas turi kokį programos gabaliuką, kur 'sukrautas' failo gabalas? Man tik įdomu kaip tai pažymima C kalboje ir kaip po to į tą vietą kreiptis |
Čia dar aišku priklauso nuo procesoriaus, reikia taip aprašyti, kad viskas būtų kaip konstantos ROM atmintyje, o ne RAM. Bet čia jau manau mokėsi. Štai kaip padaryta pas mane AVRams, IAR kompiliatoriui:
Kodas: |
#pragma memory=__flash
char Masyvas[1024] = {0x11, 0x22, ... 0xAA};
#pragma memory=default |
Ir kreipiesi kaip į paprastą masyvą.. |
|
Paskutinį kartą redagavo vakaras, 2006 04 22, 13:41. Redaguota 1 kartą |
|
|
|
 |
 |
Paveiksliuko kodas + C kalba |
Parašytas: 2006 04 22, 13:23 |
|
|
|
Va kodo pavyzdys, charset'as storinamas flashe. Beveik grafika. Ne visiškai tavo situacija ale...
Šioje situacijoje kreipiesi per masyvo elementa. Const man rodos informuos kompileriui, kad palikti šitą rom'e.
const unsigned char charset[][8] = {
{
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00
},
{ // !
0x04,
0x04,
0x04,
0x04,
0x00,
0x00,
0x04,
0x00
},
{ // "
0x0A,
0x0A,
0x0A,
0x00,
0x00,
0x00,
0x00,
0x00
}, |
|
_________________ -----
That's what she said. |
|
|
|
 |
Paveiksliuko kodas + C kalba |
Parašytas: 2006 04 22, 13:41 |
|
|
|
O, tai čia labai paprasta! Ir kaip aš nedasigalvojau iki masyvų..
Dėkui jum labai
Jei spėsiu sutvarkyt visus universitetinius reikalus, jau rytoj link vakaro bandysiu rašyt programėlę (ARM'ui)
Bandysiu pajunginėt TFEL 320x256 ekraną.. Tik tas padla dinaminis, bijau, kad gali nepakakt greičio, nes 320x256x60Hz = 5MHz (serial) ;\ Na bus matyt  |
|
|
|
|
 |
 |
Paveiksliuko kodas + C kalba |
Parašytas: 2006 04 23, 02:59 |
|
|
|
OK, dabar dar klausimėlis.
Kodas: |
for(pixel=0; pixel<320; pixel++)
{
FIO0PIN = CLK ^ 0xFFFFFFFF;
byte++;
FIO0PIN = CLK;
byte++;
} |
Vat padariau taip. Teoriškai čia tik turi generuoti clock signaliuką. Naudoju Fast GPIO portą ir vikas puikiai veikia.
Bėda: porte nebūna jokio clock, jei nutrinu 'byte++;'. Kodėl? Gal Fast portas dirba asinchroniškai? Tie byte++ čia vietoj asmo NOP.
pagudravau ir padariau taip:
Kodas: |
for(pixel=0; pixel<640;)
{
FIO0PIN = DAT ^ 0xFFFFFFFF;
pixel++;
FIO0PIN = DAT;
pixel++;
} |
Dabar irgi veikia..
Dėl ko dedasi toks reiškinys?
O, jau 03:00... lekiu miegot Labanakt  |
|
|
|
|
 |
 |
Paveiksliuko kodas + C kalba |
Parašytas: 2006 04 23, 11:09 |
|
|
|
BLASTER rašo: |
Bėda: porte nebūna jokio clock, jei nutrinu 'byte++;'. Kodėl? Gal Fast portas dirba asinchroniškai? |
Du variantai gali būti:
a) kompiliatorius suoptimizuoja kodąir pramėto nereikšmingus priskyrimus. Įsitikink, kad FIO0PIN aprašytas teisingai;
b) Pasiskaityk tą Fast GPIO aprašymą. Gal jam reikia kelių taktų kad jis suveiktų, o tu jį tiesiog išjungi jam nespėjus suveikti?... |
|
|
|
|
 |
 |
Paveiksliuko kodas + C kalba |
Parašytas: 2006 04 23, 14:32 |
|
|
|
OK, su šituo maždaug aišku.
Dabar dar klausimėlis:
Kokį didžiausią IO dažnį tau pavyko išpešt?
Man su C pavyko max 9MHz (čia periodo dažnis), o šiaip reikšmes keisti sugeba 18MHz dažniu.
Pastebėjimas: kai prisijungiu skopą namie užtyla visos FM radijos Matomai dažnis artimas 10.7MHz dažniui, kuris naudojamas imtuvuose.
Beje, čia toks dažnis jau kai kontroleris tūrbintas - 12MHz kvarcas ir PLL registre įrašyta reikžmė '7'.
datašytas rašo: |
Example 1: an application not using the USB - configuring the PLL0
System design asks for FOSC= 10 MHz and requires CCLK = 60 MHz.
Based on these specifications, M = CCLK / Fosc = 60 MHz / 10 MHz = 6. Consequently, M - 1 = 5 will be written as PLLCFG[4:0]. |
Iš čia sprendžiu, kad įrašius skaičių '7', dažnis dauginamas 8 kartus (?!). Tokiu atveju gaunasi, kad su 12MHz kvarcu gaunu 96MHz
ARM'as biškį šyla.. (bet veikia) |
|
|
|
|
 |
 |
Paveiksliuko kodas + C kalba |
Parašytas: 2006 04 23, 17:05 |
|
|
|
Sugalvojau.. Siųsiu duomenis per SPI - greitis gerokai didesnis ir dar vienu kartu galima išstumt 2 baitus.
Patinka man šitas ARM'as - SPI duomenų perdavimo greitis siekia 10MB/s
Tik kad skopas užčiuopia iki 1MB/s...  |
|
|
|
|
 |
Paveiksliuko kodas + C kalba |
Parašytas: 2006 04 23, 17:13 |
|
|
|
Prisiturbinsi tu ten... 60MHz juk leistina...
Su 2138 aš gal 2MHz padariau, nebepamenu dabar.
Jo, su SPI galima nemažą greitį išgauti. Tik vėliau radau pastebėjimą, kad SS koja turi būti pajungta į "1". Kitaip neveiks Master režime. |
|
|
|
|
 |
Paveiksliuko kodas + C kalba |
Parašytas: 2006 04 23, 20:47 |
|
|
|
Hm. Na man master režime veikia, ir dar gan gerai. Štai įrodymas:
Tik kažkur programoj bugas, kas antras kadras juodas, tai mirga.. šiaip refresh rate = 96Hz, bet čia jau ARM'as prakaituoja kaip reikalas. Vėliau gal truputį susitaupys resursų kai per SPI paleisiu po 16 bitų ir dar sumažinsiu jo clock daliklį (dabar . |
|
|
|
|
|
 |
Google paieška forume |
|
 |
Naujos temos forume |
|
 |
FS25 Tractors
Farming Simulator 25 Mods,
FS25 Maps,
FS25 Trucks |
 |
ETS2 Mods
ETS2 Trucks,
ETS2 Bus,
Euro Truck Simulator 2 Mods
|
 |
FS22 Tractors
Farming Simulator 22 Mods,
FS22 Maps,
FS25 Mods |
 |
VAT calculator
VAT number check,
What is VAT,
How much is VAT |
 |
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija |
 |
FS25 Mods
FS25 Maps,
FS25 Cheats,
FS25 Install Mods |
 |
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps |
 |
ATS Trailers
American Truck Simulator Mods,
ATS Trucks,
ATS Maps |
 |
Fun football drills
Football Training Equipment,
Defending drills football,
Kids football training kit |
|

|
 |