- Az Apple is mesterséges intelligenciával turbózza fel a teljes kínálatot
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Samsung Galaxy S22 és S22+ - a kis vagány meg a bátyja
- Telekom mobilszolgáltatások
- Yettel topik
- iPhone topik
- Poco M6 4G-ként érkezik a Redmi 13 4G
- Mobil flották
- Okosóra és okoskiegészítő topik
- Milyen okostelefont vegyek?
Hirdetés
-
Call of Duty: Black Ops 6 - Nyugalom, nem lesz 300GB-os a játék
gp Az Activision némileg tisztázta a felbukkant félreértést az idei epizód méretével kapcsolatban.
-
Az AI miatt vehetnek sokan új iPhone-t
it Nagyon sokan régóta nem vettek új iPhone-t – találgatnak az elemzők, hogy az Apple Intelligence miatt rohannak-e majd az emberek új Apple mobilt vásárolni.
-
Retro Kocka Kuckó 2024
lo Megint eltelt egy esztendő, ezért mögyünk retrokockulni Vásárhelyre! Gyere velünk gyereknapon!
Új hozzászólás Aktív témák
-
sztanozs
veterán
ezek csak pszeudo-függvények: inputa és inputb-vel töltöd fel az a és b változók értékeit...
Viszont ha csak kiértekeléskor kéri be az értékeket, akkor:
while(1) {
if (fv(inputa())) break;
fb = fv(inputb());
if (fb == 0 || fb == 2) break;
}Így a b-t be sem kéri, ha az első input hatására kilépett az első függvénynél.
[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
-
alapz@j
tag
-
buherton
őstag
válasz sztanozs #4602 üzenetére
for(;fv(inputa()) || (fv(inputb()) - 1););
vagy
while(fv(inputa()) || (fv(inputb()) - 1));(#4590) Wyll: A fordító más megvilágítás alá helyezi a kódot, ha ternary operátor van benne. Ugyanez van a for(;;) és while(1) esetén is. Van olyan fordító ahol az utóbbinál tényleg érték ellenőrzés van. Ez mind fordító függő, illetve PC-n nem is kritikus ezzel foglalkozni, mert van bőven számítási kapacitás, illetve hely is.
[ Szerkesztve ]
tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!
-
-
don_peter
senior tag
válasz dabadab #4578 üzenetére
Nos közben haza értem külföldről és kipróbáltam a kódodat, ilyesfajta bits varázslatokat nem fogad el a C18
Sebaj az első belinkelt kódom kicsi átalakítással már megy is tökéletesen.
Vannak még hibái a programnak, de ha elkészülök dobok fel vidit róla mit sikerült összekovácsolnom...----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
buherton
őstag
válasz dabadab #4608 üzenetére
Nem voltak jó tapasztalataim egyik Microchipes PIC fordítóval sem .
[ Szerkesztve ]
tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!
-
buherton
őstag
válasz dabadab #4608 üzenetére
Szeretném én is kiegészíttetni a téma összefoglalót.
Magyar nyelvű könyvekhez:
Kónya László-Kopják József - PIC Mikrovezérlők alkalmazástechnikája [link]Fejlesztő környezetek:
Clang
cross-platform (Windows / Linux / OSX) csak fordítóMPLABX
cross-platform (PIC) fejlesztőkörnyezetEclipse CDT
fordítót nem tartalmaz, de konfigurálhatósága miatt szinte minden platforma minden fordítóval lehet benne fejleszteniLPCXpresso
cross-platform (NXP Cortex-M, ARM7, és ARM9 alapú mikrokontrollerek) fejlesztőkörnyezetAtmel Studio
cross-platform (AVR8, AVR32, Atmel ARM-ok) fejlesztő környezetarm-none-eabi
cross-platform (ARM Cortex-M és Cortex-R) csak fordítóEzek mind ingyenesen használhatóak. Az MPLABX-ben nem vagyok biztos.
tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!
-
don_peter
senior tag
Hölgyek, Urak!
Hogy tudok egyszerűen és gyorsan törölni egy tömböt?
Pl. van egy ilyen tömböm:
tomb[] = {a,b,c,d,e,f,1,2,3};
Szeretném ennek teljes tartamát törölni, de lehetőleg nem bejárással.
Van erre valami jól bevált vagy legalább hatékonyan használható parancs vagy kód?
Köszi előre is..----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
dabadab
titán
válasz don_peter #4615 üzenetére
Ez az elso printf-nel el fog szallni, mert nincs lezarva nullaval, aztan utana az strlen-nel ugyanazert
Ha csak egy stringet akarsz torolni, akkor
ttomb[0] = 0;Ha meg az egesz tombot torolni akarod, akkor meg
memset(ttomb, 0, sizeof(ttomb));(A '\0' erosen tul van cicomazva szerintem )
DRM is theft
-
don_peter
senior tag
válasz don_peter #4607 üzenetére
Ígértem egy kis videót a programról amit írtam.
Még nem tökéletes, de rajta vagyok erősen
4x4 alfanumerikus matrix:
video link[ Szerkesztve ]
----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
KDSH
tag
Bocsánat, nem akarok beleszólni a nagyok dolgába, de fentebb olvastam, hogy a Dev-C++ már vagy tíz éve nem volt frissítve. Ez azért egy kicsit merész kijelentés, nemde? [link]
-
alapz@j
tag
válasz don_peter #4613 üzenetére
Pont tegnap próbáltam ki az alábbi kis szösszenetet, ami válasz a kérdésedre is:
#include <stdlib.h>
#include <intrin.h>
int main(void) {
unsigned char *test = (unsigned char*)malloc(100);
__stosb(test, 0, 100);
free(test);
return 0;
}X86 és X64 architektúrákra.
[ Szerkesztve ]
-
don_peter
senior tag
válasz alapz@j #4623 üzenetére
Köszi, de mikrokontrollerbe használom így azt hiszem vagy is azt gondolom, hogy nem működne ez ebben a formában.
Főként talán azért mert nem emlékszem, hogy a C18-as könyvtárban lenne ilyen "intrin.h" állomány.Egyébként ha működne miért lenne ez jobb mint az előző?
A tömbökben amiket törlök memset()-el rövid életűek és csak az interfészen bevitt karaktereket tárolják majd ha végeztem a 14 adat bekérésével kimentem memóriába a tömb adatait és utána rögtön törlöm is.Tényleg ha már itt tartok:
Hogy tudom ellenőrizni a tömb tartalmát hogy abban karaktert vagy számot írtam?
Mutatok egy példát:unsigned char teszt[4] = {'1','2','3','\0'};
//ellenőrzés pedig
if(atoi(teszt)>0 & atoi(teszt)<255){
printf("Csak szám\n");
}else{
printf("Nem csak szám\n");
}
//Másik változat
unsigned char teszt[4] = {'1','1','A','\0'};
//ellenőrzés pedig
if(atoi(teszt)>0 & atoi(teszt)<255){
printf("Csak szám\n");
}else{
printf("Nem csak szám\n");
}Eredménye:
1. Csak szám - ez helyesen értékelődik ki
2. Csak szám - ez hibásan értékelődik ki mivel tartalmaz egy betűt isTegnap próbálkoztam vele és pl: ha betűvel kezdődik a tömb akkor helyesen értékelődik ki, de ha az elején szám van és a végére betűt írok akkor hibás a kiértékelődés.
Hogyan tudom megvizsgálni a tömböt, hogy abban csak számok van?
Köszi előre is..ui: tömb bejárásnál eszembe jutott, hogy talán elemnkénti vizsgálattal pl:
if(tomb[i] != 'A - Z' & tomb[i] != 'a - z') //helyes
Vagy valami ilyesmi...
[ Szerkesztve ]
----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
Karma
félisten
válasz don_peter #4625 üzenetére
Az atoi semmiképp se jó választás, hiszen ha nem számjegy karakterrel találkozik, azt simán kihagyja. A "11A" stringedre ha jól saccolom, a visszatérési érték 11.
Az elemenkénti végignézést javasolnám személy szerint, az nem túl költséges, és biztos jó eredményt ad. Mondjuk az a-zA-Z vizsgálat helyett sokkal egyszerűbb azt nézni, hogy az i-edik karakter >= '0' és <= '9'
Na meg nyilván ha == 0, akkor le kell állni a ciklussal.
alapz@j: Ha a memset ezt az intrinsic megoldást használná, nem lenne az egész optimalizáció vs. biztonság mizéria
[ Szerkesztve ]
“All nothings are not equal.”
-
don_peter
senior tag
Közben rájöttem
Kicsit agyalnom kellett az eddig tanultakon bár annak nem örülök, hogy lépésenként kell végignézni a karaktereket ...unsigned int i=0;
unsigned char teszt[4] = {'1','A','3','\0'};
for(i=0; i<=sizeof(teszt)-1; i++){
if ( (teszt[i] >= 'A' && teszt[i] <= 'Z') )
printf("Ez egy betű!\n");
else
printf("Ez egy számjegy!\n");
}Közben látom, hogy megelőztetek
Köszi..Szerk:
Értem akkor inkább a számokat vizsgáljam, mert az rövidebb ideig tart.
Világos.. Mindig tanulok valami újat.
Néztétek a videót amit linkeltem ezzel kapcsolatban?
Kukk meg itt: [link][ Szerkesztve ]
----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
Karma
félisten
válasz don_peter #4628 üzenetére
Eszembe jutott még egy lehetőség, és akkor nem kell karakterenként vizsgálnod. Láttam, hogy van printf függvényed, így gondolom sscanf is előfordul. Ha mondjuk %d-t keresel a stringben, és az sscanf visszatérési értéke 1, akkor szám volt, ha 0, akkor meg nem sikerült.
“All nothings are not equal.”
-
don_peter
senior tag
Az sajnos nincs.. mármint sscanf() függvényem, nyilván egyszerübb lenne sok minden, ha pont úgy működne mint PC-én, de sajnos nem
A 4x4-es mátrix gombsort folyamatosan ellenőrzi a progi amit írtam rá és ha gombnyomás történik akkor a gombhoz párosított karaktert menti egy ideiglenes változóba.
Ez után, ha végig ment a kiértékelésen betöltődik egy tömbbe és az ideiglenes változót töröljük és újrakezdődik a folyamat addig ameddig el nem érjük a kívánt karakterszámot vagy ENTER-nek megfelelő gombot meg nem nyomjuk.Érdekes dolog ez a mikrokontroller programozás.
Ui:
Közben így módosítottam a vizsgáló kódom:unsigned int i=0;
unsigned char teszt[4] = {'1','A','3','\0'};
for(i=0; i<=sizeof(teszt)-2; i++){
if ( (teszt[i] >= '0' && teszt[i] <= '9') )
printf("Ez egy számjegy!\n");
else
printf("Ez egy betű!\n");
}Viszont a változó méretű, de maximum 18 karakter férőhelyes tömbömben majd vizsgálnom kell a végét is és ez felveti azt a problémát, hogy a sizeof() függvényt le kell cseréljem egy általam vagy már létező strlen() függvényre.
De, ezek már részletkérdések..[ Szerkesztve ]
----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
kezdő91
újonc
Valaki tud ebbe a feladatba segíteni?
Egy üres sakktáblán a felhasználó által mondott mezőre helyezzünk el egy
futót és jelöljük meg azokat a mezőket, amelyre a futóval lépni lehet. -
Wyll
őstag
válasz kezdő91 #4631 üzenetére
Az éppen vizsgált mező: x
A mező, ahol áll a futó: a
Adott mező melyik sorban van: row()
Adott mező melyik oszlopban van: col()
Szám abszolút értéke: abs()Azok lesznek a keresett mezők, melyekre igaz, hogy
abs(row(a) - row(x)) == abs (col(a) - col(x))
Azaz amelyeknek az a-tól vett oszloptávolgása és sortávolsága megegyezik.
Kivéve persze azt, ahol állunk[ Szerkesztve ]
Megbízhatóságom: http://phmegbizhatosag.atw.hu/phtabla.php?nev=Wyll
-
asuspc96
senior tag
Helló!
Kellene egy olyan eljárás/program megoldja azt a problémát hogy:
adott egy 3x3-as négyzet, amibe 1-9ig lehet számokat pakolni, és ebben a 4db 2x2-es részben a beírt számok összege mindenhol megegyezzen.
ezt kellene valahogy megoldani, ötletek ?
-
don_peter
senior tag
Fiúk, Lányok!
Lenne egy valószínűleg vicces kérdésem, de muszáj megkérdeznem mert nem vagyok biztos a gondolat menetemben.
A lényeg, hogy van 2 típus, char és int.
El akarom menteni memóriába és az a kérdésem, hogy ha számokat akarok elmenteni char típusként akkor 1 szám 1bájtot fog foglalni?
Tehát ha egy 8-as számot akarok char típusként elmenteni akkor az 1bájtot fog foglalni a memóriában?
És ha 12-őt akkor az már 2bájtot igaz?
Viszont int típusként 0-255-ig 1bájt igaz?
Vagy char típusként is megmarad a 0-255-ig az 1bájt?Én úgy gondolom, hogy char típusnál 1 szám vagy betű 1bájtot foglal.
Okosítsatok fel.
Előre is köszi..----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
k.kristof
őstag
válasz don_peter #4635 üzenetére
A char típus mérete 1 bájt, azaz 8 bit, ez maximálisan 256-féle érték tárolására képes. Alapértelmezetten signed char a típus, ekkor [-128,+127] az ábrázolható tartomány, ha unsigned chart használsz, akkor pedig [0,255].
Ajánlom ezt a linket neked: Difference between signed / unsigned char.
[ Szerkesztve ]
-
kispx
addikt
válasz don_peter #4635 üzenetére
Nem egészen.
Az egy számjegyű számokat eltudod menteni char típusba mivel egy betűből áll. A 2 vagy több karakterből álló számokhoz string kell. (és ide a lezáró nullát bele kell számolni.). (És ennél a pontnál már az 1 jegyű számokat is úgy tárold)
> "És ha 12-őt akkor az már 2bájtot igaz?"
És még a lezáró '\0' karaktert is hozzá kell számolni.> "Viszont int típusként 0-255-ig 1bájt igaz?"
Nem. Az int típusnak fix a mérete (általában 4 bájt). A charnak is fix a mérete 1 bájt.[ Szerkesztve ]
-
Karma
félisten
válasz don_peter #4635 üzenetére
Képzavarban vagy.
A char, short, int, long, long long különböző méretű, egy számot tároló típusok. Ha nem is a száraz C szabványt, legalább a Wikipédia felsorolását nézd meg.
A méretük fix, nincs olyan hogy egy int 255 alatt csak egy, fölötte több bájt, mindig négy (tipikus fordítóknál, PC-n). A char meg mindig egy bájt. Ha nagyobb számot akarsz beleírni, mint amit ábrázolni tud, akkor átfordul az érték. Pl. unsigned char esetén 255 + 3 = 2.
Gyanús, hogy belekeverted a karakterláncokat gondolatban (char*, char[]).
[ Szerkesztve ]
“All nothings are not equal.”
-
don_peter
senior tag
Húú annyi információt kaptam, hogy még jobban össze zavart.
Tehát a lényeg, hogy van egy memória területem amiben 32bájt helyem van.
A 32bájt helyre szeretném elmenteni a következőket.:
2-3 karakter a sor azonosító, egy speciális karakter és egy szám 0-14-ig (#0-#14)
16 karakter a név, (min 3 - max 16) 16bájt
6 számérték a hőprofil, (1-255) 6x1bájt
6 számérték az időprofil, (1-255) 6x1bájt
1 számérték az alsó fűtés (1-1023) 2bájtA számadatok unsigned int változóba a karakterek unsigned char változóba vannak jelenleg elmentve és így működik is ahogyan szeretném, de véleményem szerint sok memóriát emészt fel és szeretnék spórolni a felhasználható programmemóriával. (mikrokontroller)
A kérdésem arra irányul, hogy ezen adatokat egy unsigned char változóba is beírhatom úgy hogy a számértékek mint pl.: 255 az maximum 1bájt-ot foglaljanak?
Vagy ez nem megoldható.
Nem tudom mennyire érthető a kérdésem...----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
don_peter
senior tag
válasz k.kristof #4640 üzenetére
A program melyet írtam le korlátozza a számértékeket a megengedett 1-255-re (1bájt).
Ha már 256 akkor hibával tér vissza a program, illetve az alsó fűtés értéke lehet nagyobb mint 255, de kisebb mint 65536 vagy is 2bájt.
unsigned char változóba lennének mentve ideiglenesen bevitt értékek...Ja és még ide annyi, hogy mivel a nevet és minden számértéket egy változóba akarok menteni így nem lehet int típusú.
Ez lenne a lényege a dolognak.
unsigned char buffer[32]={0}; //ebbe lenne minden tárolva[ Szerkesztve ]
----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
buherton
őstag
válasz don_peter #4641 üzenetére
Általában a char 8 bites szokott lenni, ami ugye 1 bájt (unsigned 0 - 255). A short int 16 bites, ami ugye 2 bájt (usnigned 0 - 65535). Az int 32 bites, ami ugye 4 bájt (unsigned 0 - 4 G).
Ha te egy unsigned char-ba teszel 256-t, akkor abban a változóban 0 lesz az értékadás után, mert átvitel fog képződni (signed esetén ezt túlcsordulásnak hívják). Ha te 255-nél nagyobb számot akarsz letárolni, akkor muszáj használnod a short int-et. Vagy char tömbbe is letárolhatod, és akkor rugalmasan lehet bővíteni. Például én most SPI-al akarok meghajtani 6 shift regisztert, ahol char tömbben tárolom le az egyes shift regiszterek bájtait.
Ismerkedj meg a struktúrával. Például:
typedef struct
{
unsigned short int temperature_min;
unsigned short int temperature_max;
unsigned char foo_bar[32];
} FOO_BAR_S;tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!
-
axioma
veterán
válasz don_peter #4639 üzenetére
Par dolgot nem ertek.
1. ha sporolni akarsz, es raadasul egyszerubben olvashato tarteruletet, akkor miert 2-3 (valtozo hossz!) karakter a sorszam, mikor befer egy byte-ba (sot, ha hexa jegykent irod le, akkor ugymond olvashato formaban is marad '1'..'9','A',...)?
2. miert nem a nev hosszan sporolsz (felteszem nem kell annyira kifejezonek lennie, regen 8 (max+3)-ba mi minden belefert )
3. most akkor hogyan 6 byte a ho- es idoprofil (ott karakteresen tarolsz szamot, es egy tol-ig ahol mindket szelso lehet 3 jegyu?), de 2 byte szamabrazolt az also futes? nekem maga az eredeti elkepzeles nem konzisztens -
don_peter
senior tag
Mikrokontroller programozásról van szó.
A program nyelvünk a C.
A mikrokontroller alap programmemóriája 2KB így csínján kell bánni vele.
Elég nagy lesz a program szóval spórolni szeretnék ahol tudok.
A mikrokontroller Eeprom memóriája 256bájt, ezen területen fogom tárolni az utolsó betöltött állásokat, áramszünet vagy kikapcsolás esetére...
Természetesen csatolni fogok SPI csatlakoztatással egy 64KB-os memóriát is melyben a profil adatokat fogom tárolni.
Ezen memória területeket el kell lássam egy azonosító jellel melyet vissza keresve tudom majd ellenőrizni, hogy az érvényes profilbeállítás.
Ez az érvényes azonosító kerül be az Eeprom területre, és ez alapján töltöm be a memóriából az utolsó elmentett profil állapotot.
A kijelzés egy 2x16 és vagy 4x20karakteres LCD kijelző lesz amelyen a lehető legkifejezőbben szeretném értesíteni a felhasználót az éppen aktuális állapotról.A név hosszán már is spóroltam így csak maximum 16karakter lehet.
A kérdésem pont arra vonatkozott, hogy megoldható e az összevont tárolás, hogy karaktert és számot egyaránt tudjak tárolni.
De úgy fest külön kell megoldanom mint ahogy én is megcsináltam azt eredetileg.
Talán így érthetőbb.
Így meg szerintem totál meg fogod érteni az eredeti elképzelésem: nézd meg kérlek
Köszi...----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
don_peter
senior tag
válasz buherton #4642 üzenetére
Igen használok már 16bites struktúrát (struct) a memória címzésnél.
SPI 25LC640 memória címzésnél írásnál és olvasásnál.
Amikor ki akarok írni memóriába egy 16bites adatot akkor ott (short int) hogy tudom kiírni amikor maximum 1bájtonként tud írni a buffer regiszterbe?----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
axioma
veterán
válasz don_peter #4644 üzenetére
Lattam a video elejet korabban, de nem erdekelt vegig Vagy nem ez volt, de a kutyudre emlekszem.
Ja, akkor tenyleg 6 adatod van a kozepen is, ez nem volt vilagos.
Hozzateszem, nem vagyok ilyen hardverkozeli programozo, az elso hsz-om is csak a tarolasrol szolt.
Nem ertem mit akarsz osszevonni, megmondom oszinten... lesz x byte teruleted, arra rateszel egy olyan strukturat, amilyen illik az adatokra. Lesz benne char[] es lesz benne unsigned byte meg unsigned short. Nem ez lenne a trivialis? Vagy valamiert mindenkepp egy valamilyen tomb kene legyen?
En me'g azt nem ertem, hogy ha rogton az elejen hogy lehet 2 VAGY 3 byte/char... feltoltod ugy hogy (karakteresen) #12 akkor honnan fogod tudni, hogy igy kell olvasni, es a 2 nem az utana kovetkezo adathoz tartozik es a #1-rol van szo? Raadasul 4 bitnyi adatrol van szo... fura, vagy tovabbra se ertem, nezd el nekem.
Ha csak nagyon helyszukeben lennel, de a prog. hossza nem szamit, akkor a betuket tudnad me'g tomoriteni (mivel a billrol ha jol latom kb. 40 fele karaktert tudsz bevinni, az 6 bitbe befer; na de ezt oda-vissza konvertalgatni macera (kodterulet, hibalehetoseg...), es mindossze 4 byte roviditest ad 16 byte-nal.[ Szerkesztve ]
-
don_peter
senior tag
"Nem ertem mit akarsz osszevonni, megmondom oszinten... lesz x byte teruleted, arra rateszel egy olyan strukturat, amilyen illik az adatokra. Lesz benne char[] es lesz benne unsigned byte meg unsigned short."
Csak kérdeztem, hogy megoldható e, hogy egyszerre 2 típust tároljak egy változóba, de ez nem megoldható.
Így marad egy külön char ami 8bites és egy short int ami 16bites.
Hozzáteszem, hogy csak egy adat az alsó fűtés igényel 1bájtnál nagyobb területet.
Ezt túl is tárgyaltuk...En me'g azt nem ertem, hogy ha rogton az elejen hogy lehet 2 VAGY 3 byte/char... feltoltod ugy hogy (karakteresen) #12 akkor honnan fogod tudni, hogy igy kell olvasni, es a 2 nem az utana kovetkezo adathoz tartozik es a #1-rol van szo?
Itt a "#" kettős kereszt lesz egy speciális karakter amely jelzi az érvényes adatblokk kezdetét. (ez 1bájt)
Az utána következő 1bájtban egy szám lesz ami 0-14 közt van mivel maximum 15db különálló profilt lehet majd előre rögzíteni a memóriába.
A program elején egy feltétel vizsgálattal ellenőrzöm és beazonosítom az utolsó betöltött profilt.
Az azonosítás több részből áll, de ez már más téma...----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
don_peter
senior tag
Igen használok adatstruktúrát és azt union-ban (típus definícióval) megadva megadom a memória címzését hexában...
De azt hogy egy adott 2bájtos adatot, hogyan adok át egy memóriának mikor az maximum 1bájtot tud egyszerre a buffer regiszterébe kezelni....ez nem fér a fejembe..
A többi dolgot megoldom sort int és unsigned char típusú változókkal.----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
dabadab
titán
válasz don_peter #4645 üzenetére
"Amikor ki akarok írni memóriába egy 16bites adatot akkor ott (short int) hogy tudom kiírni amikor maximum 1bájtonként tud írni a buffer regiszterbe?"
(Gondolom ez a buffer regiszter vmi i/o port)
Ertelemszeruen byte-onkent
typedef unsigned short u16;
void u16_to_port(u16 input)
{
buffer_reg = u16 & 0xff;
// write buffer
buffer_reg = u16 >> 8;
// write buffer
}DRM is theft
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen