 |

|
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 07 27, 17:05. Visos datos yra GMT + 2 valandos.
|
|
|
 |
Forumas » Mikrovaldikliai » Grafinis ekranas + tiny2313
|
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
|
|
|
 |
 |
 |
Grafinis ekranas + tiny2313 |
Parašytas: 2007 04 10, 11:55 |
|
|
|
Gavau LM24010 grafinį b/w LCD, 240x128, be didesnių problemų pasileidau jį ant tiny2313 dirbančiu ant 24MHz( LCD neturi vidinio kontrolerio). Na kadrai mirkčioja, ir ant pilno ploto paleidus jau nebesimato vaizdo,paleidus kaip 80*128 dar puse velnio, pagal datasheet'ą turi būt 70 FPS kad gerai rodytų.
Man čia toptelėjo mintis belaukiant kol atvyks ARM'ai, kad jei ant 24MHz ~3 kadrai per sekunde tai ant 75MHz bus tik ~9 FPS
Imečiau kodą, gal kas pasakys kuri vieta čia kreivai padaryta, nes paskaičiavus paduodamą CLK gaunasi 240*128*3/4=23040 // dalinta iš 4 nes vaizdas 4 bitais perduodamas.
Tai kažkaip mažoka
Kodas: |
#include "iotiny2313.h"
#pragma memory=__flash
unsigned char Masyvas[1500] =
{
15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
14,14,14,14,0,14,11,15,14,14,0,14,11,15,1,15,
14,14,14,14,11,15,5,15,14,14,11,15,5,15,14,14,
.........
...
...
};
#pragma memory=default
void main(){
//----------------------------------
unsigned char CP1=0,CP2=0;
unsigned int pixels=0;
//----------------------------------
DDRB = 255;
DDRD = 127;
//----------------------------------
while(1){
//----------------------------------
pixels=0;
//----------------------------------
for (CP1=1; CP1<129; CP1++){
//----------------------------------
PORTB = (1<<PB6); //CP1
//----------------------------------
if (CP1==1) PORTB |= (1<<PB4); // S
else PORTB &= ~(1<<PB4); // S
//----------------------------------
PORTB &= ~(1<<PB6);//CP1
//----------------------------------
for (CP2=1; CP2<61; CP2++){
//----------------------------------
PORTB |= (1<<PB5); // CP2
//----------------------------------
PORTB = PORTB & 0xFE | (Masyvas[pixels] & 0x01);
PORTB = PORTB & 0xFD | (Masyvas[pixels] & 0x02);
PORTB = PORTB & 0xFB | (Masyvas[pixels] & 0x04);
PORTB = PORTB & 0xF7 | (Masyvas[pixels] & 0x08);
//----------------------------------
PORTB &= ~(1<<PB5); // CP2
//----------------------------------
pixels++;
}
}
}
}
|
Ir dar vienas klausimas. Dabar pas mane iš masyvo kiekbieno char'o imami tik 4 bitai, kiti 4 nenaudojami. Kaip juos "pasiimti" ?
Bandžiau:
PORTB = PORTB & 0xFE | (Masyvas[pixels] & 0x10 | 0x01);
PORTB = PORTB & 0xFD | (Masyvas[pixels] & 0x20 | 0x02);
PORTB = PORTB & 0xFB | (Masyvas[pixels] & 0x40 | 0x04);
PORTB = PORTB & 0xF7 | (Masyvas[pixels] & 0x80 | 0x08);
Bet kažkotais nenori veikti
edited:
Bebandydamas supratau, kad labiausiai stabdo:
Kodas: |
PORTB = PORTB & 0xFE | (Masyvas[pixels] & 0x01);
PORTB = PORTB & 0xFD | (Masyvas[pixels] & 0x02);
PORTB = PORTB & 0xFB | (Masyvas[pixels] & 0x04);
PORTB = PORTB & 0xF7 | (Masyvas[pixels] & 0x08); |
edited2:
Šitą:
Kodas: |
PORTB = PORTB & 0xFE | (Masyvas[pixels] & 0x01);
PORTB = PORTB & 0xFD | (Masyvas[pixels] & 0x02);
PORTB = PORTB & 0xFB | (Masyvas[pixels] & 0x04);
PORTB = PORTB & 0xF7 | (Masyvas[pixels] & 0x08); |
pakeitus į:
Kodas: |
PORTB = PORTB & 0xF0 | (Masyvas[pixels] & 0x0F); |
viskas išsisprendė, dabar jau apie 15 FPS kas jau normaliau
Dabar dar tik liko klausimas dėl tų 4 bitų . |
|
_________________ Teorija - kai viską žinai, bet niekas neveikia,
Praktika - kai viskas veikia, bet nežinai kodėl.
Skype : VytautasRX |
|
|
|
 |
 |
Grafinis ekranas + tiny2313 |
Parašytas: 2007 04 11, 15:47 |
|
|
|
Ech, nu ir kokia dar kalba gali buti apie greiti tampant porto koja su C !
PORTB = (1<<PB6); ----> 3taktai
PORTB &= ~(1<<PB6); ----> 5taktai
sbi PORTB, 6 ----> 1taktas
cbi PORTB, 6 ----> 1taktas
Skirtumas akivaizdus  |
|
|
|
|
 |
Grafinis ekranas + tiny2313 |
Parašytas: 2007 04 11, 17:35 |
|
|
|
Nu jo  |
|
_________________ Teorija - kai viską žinai, bet niekas neveikia,
Praktika - kai viskas veikia, bet nežinai kodėl.
Skype : VytautasRX |
|
|
|
 |
Grafinis ekranas + tiny2313 |
Parašytas: 2007 04 12, 12:54 |
|
|
|
Čia pas tave kažkokios bėdos su kodo efektyvumu.
Su 20MHz AVR valdau 160x64 ekraną ir išnaudojama tik nepilnus 20% greičio. Čia prie 80FPS.
Su tokios rezoliucijos ekranu kaip taviškis, būtų išnaudojama ~50% greičio.
Programą rasi čia.
Tiesa, čia yra vienas tų atvejų, kai geriau rašyti assembleriu.. |
|
|
|
|
 |
Grafinis ekranas + tiny2313 |
Parašytas: 2007 04 12, 15:14 |
|
|
|
hmm.. paleidus tą pačią programą ant Atmegos veikia bent 5 kartus greičiau, įdomu kodėl?  |
|
_________________ Teorija - kai viską žinai, bet niekas neveikia,
Praktika - kai viskas veikia, bet nežinai kodėl.
Skype : VytautasRX |
|
|
|
 |
Grafinis ekranas + tiny2313 |
Parašytas: 2007 04 12, 15:39 |
|
|
|
gaila to puslapio nepastebejau kas savo LCD kontroleri dariau.
mano kontroleris isejo toks
http://pupa.da.ru/tftcontroller/
bet del asamblerio nesutikcisu, ta pati greti galima ir c kalba padaryti
pvz mano LCD kontroleris pasiekia apie 10-15 kadru per sekunde ant 12mhz atmega kai rezoliucija 640x480
del sito
Kodas: |
PORTB = PORTB & 0xF0 | (Masyvas[pixels] & 0x0F); |
butu zymiai gereiua jei isvis neaudotum B4-B7 bitu arba keistum programos logika
tada uzteks
Kodas: |
PORTB = Masyvas[pixels] |
|
|
|
|
|
|
 |
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 |
 |
FS25 Mods
FS25 Harvesters,
FS25 Tractors Mods,
FS25 Maps Mods |
 |
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 |
 |
Football Training Kit
Football Training Equipment,
Football Skills,
Football Training |
|

|
 |