 |

|
|
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 12 21, 23:31. Visos datos yra GMT + 2 valandos.
|
|
|
 |
Forumas » Mikrovaldikliai » Dvieju baitu dekodavimas
|
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
|
|
|
Puslapis 2 iš 2 Pereiti prie Atgal 1, 2 |
|
 |
Dvieju baitu dekodavimas |
Parašytas: 2007 12 28, 17:08 |
|
|
|
|
as tik pries pora sav pradejau isvis programuoti,todel dar nelabai suprantu apie tuos pointeruis,o kai naudoju Lcd_out(2,9,"bet kas") tai i LCD issiveda tekstas arba skaiciai parasyti tarp kabuciu,jeigu be kabuciu:Lcd_out(2,9,ch), tai kompliatorius duoda kkoki tai errora :
"implicit cast of integral value to pointer"
tai parasykit,kai turesit truputi laisvo laiko, veikianti kodo pavizdi pagl ta koda kur buvau idejes ,tai is to pavizdio kaip nors susigaudysiu su tais pointeriais,a tai dabar ziuriu tuos helpus ir neturiu uz ko uzsikabinti,man reik veikiancios progr su pointeriu,tada bus aiskiau... |
|
|
|
|
|
 |
 |
Dvieju baitu dekodavimas |
Parašytas: 2007 12 28, 18:29 |
|
|
|
|
piniterius mokytis pagal pavyzdi yra beprasmiska, ten neiko nesuprasi nes skiriasi smulkmenos.
pointeris tai adresas atmintyje sakykime jei adresu 0x20 yra padetas baitas x
tai pointeris i ta baita x bus *(0x20) zinoama beprasmiska taip rasyti nes tu tiesiog galetum susikurti normalu kitamahi, pvz char x, vietoje to kad nuolatos raisnetum (char)(*(0x20)) vietoje to kad tiesiog parasyti x.
tiesiog zinok kad "" tai pointeris i teksta flash atmintyje
masyvas pvz char a[20] pointeris i ka nors ram atmintyje su vietos rezervavimu.
jei parasysi char *b tai tu turi tik pointeri i niekur.
dabar cia ir prasideda problemos nes flash ir ram PIC procesoriui skirtingi dalykai. su ARM ir PC tu nekreipi demesio kokia atmintis
visokioms funkcijosm priimancios teksta kaip argumenta reikia duoti pointerius i ta teksta.
sakykime susikuriame char masyva kuriame irasytas zodis test.
char a[20]={'t','e','s','t',0}
dabar jei tu nori pasiekti 'e' raide tai dalima rasyti taip:
x=a[1];
x=*(a+1);
dabat kitas atvejis sakykime tu nori kitai funkcijai perduoti teksta kaip ta padarysi? su pointeriais lengva
char a[20]={'t','e','s','t',0}
void fn(char * x){
while (*x){
Lcd_out(2,9,*x),
}
}
dabar jei nori atspausdinti tai kas yra a[] masyve rasai taip:
fn(a); |
|
|
|
|
|
 |
 |
Dvieju baitu dekodavimas |
Parašytas: 2007 12 29, 22:05 |
|
|
|
|
Sveiki visi,na atrodo sita problema issprendziau,dekui Digix ir kitiems uz kantrybe ir kad nurode kelia kaip tai daroma,kazkiek jau pradejau gaudytis apie tuos pointerius nors man dar mokintis ir mokintis,jau turiu ta koda kuri ir norejau gauti,beje dar ir kitam forume siek tiek padejo,nors jis surija vos ne puse mk resursu...taciau LCD tvarkingai rodo tai kas parasyta programoj,t.y a+b=119,idedu sita koda su kai kuriais komentarais cia gal naujokams kada ir pravers,beje kas nepastebejo,tai pradiniam kode buvau kintamaji pavadines raidem ch ,kas yra nepatartina,nes mikroC kompiliatoriuje jis yra rezervuotas ir naudojamas ASCII kodams isvesti.
//LCD testas PIC16F84A 4Mhz mikroC kompliatorius
unsigned char a,b,sk;
char Suma[4];//sukuriu buferi skaiciavimo rezultatui patalpinti.
char *tx ;//sukuriu pointeri(adresa mk atmintyje), siuo atveju tekstui patalpinti.
void main () {
LCD_Init(&PORTB);
Start :
LCD_Cmd(LCD_CLEAR);
a=100;
b=19;
sk = a+b ;
ByteToStr(sk,Suma);//cia yra mikroC bibliotekos vieno baito konvertavimo funkcija,ir
//sios funkcijos vykdymo rezultatas padedamas i buferi Suma .
tx = "a+b =" ; //i anksciau sukurta pointeri pasidedu teksta,t.y a+b=
Lcd_Out(2,4,tx); //teksta kurio adresas yra pointeris tx isvedu i LCD
while(1) {LCD_Out(2,10,Suma); //a+b gauta rezultata paimu is buferio Suma ir isvedu i LCD
Delay_ms(100) ;
goto Start ;
}
} |
|
|
|
|
|
 |
 |
Dvieju baitu dekodavimas |
Parašytas: 2007 12 29, 22:20 |
|
|
|
|
| gerai kad veikia nor ta tx pointeri panaudojai be jokio reikalo. tik tiek kad isbandei kaip tai daroma. |
|
|
|
|
|
 |
Dvieju baitu dekodavimas |
Parašytas: 2007 12 29, 23:00 |
|
|
|
|
| taip,galbut tx ir bereikala panaudojau,teksta ivairiais keliais jau galiu isvesti,tai as cia tik mokymosi ir bandymo tikslu kolkas viska darau,jau man greit to pic'uko visos kkojos nutrukines perstatinejan is prgramatoriaus i LCD plata...viena jau nutruko,bet dar sulitavau... |
|
|
|
|
|
 |
Dvieju baitu dekodavimas |
Parašytas: 2007 12 29, 23:11 |
|
|
|
|
| o neišeina kaip nors to programatoriaus prilituoti prie PIC'o platoj? tada nereiktų tiek gaišti. žinoma, jei tos kojos jau panaudotos, tai blogiau.. |
|
|
|
|
|
 |
Dvieju baitu dekodavimas |
Parašytas: 2007 12 31, 04:18 |
|
|
|
|
| siaip tai pic nelabai pritaikytas C kalbai, todel programos ir sunaudoja labai daug atminties. |
|
|
|
|
|
|
 |
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 |
 |
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 |
 |
Must have farming mods
Farming simulator modhub,
Best farming simulator mods |
|

|
 |