- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Samsung Galaxy Z Fold7 - ezt vártuk, de…
- Huawei Watch Fit 5 Pro - jó forma
- Honor Magic7 Pro - kifinomult, költséges képalkotás
- Samsung Galaxy S26 Ultra - fontossági sorrend
- Samsung Galaxy A52s 5G - jó S-tehetség
- Vivo X200 Pro - a kétszázát!
- Okosóra és okoskiegészítő topik
- Rég várt frissítést kap az Android tárcsázója
- Poco F8 Ultra – forrónaci
-
4900 - 4801
6397 - 6001 6000 - 5901 5900 - 5801 5800 - 5701 5700 - 5601 5600 - 5501 5500 - 5401 5400 - 5301 5300 - 5201 5200 - 5101 5100 - 5001 5000 - 4901 4900 - 4801 4800 - 4701 4700 - 4601 4600 - 4501 4500 - 4401 4400 - 4301 4300 - 4201 4200 - 4101 4100 - 4001 4000 - 3901 3900 - 3801 3800 - 3701 3700 - 3601 3600 - 3501 3500 - 3401 3400 - 3301 3300 - 3201 3200 - 3101 3100 - 3001 3000 - 2901 2900 - 2801 2800 - 2701 2700 - 2601 2600 - 2501 2500 - 2401 2400 - 2301 2300 - 2201 2200 - 2101 2100 - 2001 2000 - 1
-
Fórumok
Mobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
-
Frissítve: 2014-04-25 14:12 Téma összefoglaló
Új hozzászólás Aktív témák
-
alapz@j
tag
Alap problémám akadt. Ékezetes karaktereket szeretnék bevinni és kiírni. Az alábbi leegyszerűsített kódal próbáltam, de az 'á' betűvel kezdődő szavakból lemarad az első betű. pl. állomás -> llomás. Az 'ékezet' szót kiírja hiba nélkül. Mit szúrok el?
#include <wchar.h>
int main()
{
wchar_t string [40];
wscanf(L"%ls",string);
wprintf(L"String: %ls", string);
return 0;
}Érdekes, gcc-vel és tcc-vel is lefodítottam a programodat és mindkét esetben tökéletesen működik az érzékeny karakterekre (űőŰő) is...
-
zka67
őstag
Nem próbáltam, de szerintem ez működhet.
Stdinen semmi se biztos mondjuk.
Nyilván hülyeséget írtam, a getc alaphelyzetben blokkol, ha nem tud karaktert olvasni; ezt felülbírálni meg nem lehet platformfüggetlenül...
Sebaj, legalább megpróbáltál segíteni, amit köszönök.
-
#68216320
törölt tag
A forrásfájl kódolása tetszőleges lehet és független a futásidejű kódolástól. Az aktuális locale beállításból jön, alapértelmezése pedig utf8. Persze meg is lehet adni a fordítónak, gcc esetén a -finput-charset kapcsolóval.
#include <stdio.h>
#include <wchar.h>
#include <locale.h>
int main()
{
const wchar_t* text = L"árvíztűrő tükörfúrógép";
wchar_t buf[40];
setlocale(LC_ALL, "");
wprintf(L"Írd be, hogy %ls: ", text);
fgetws(buf, 40, stdin);
buf[wcslen(buf) - 1] = 0;
wprintf(L"Ezt írtad be: \"%ls\", %ls\n", buf,
wcscmp(text, buf) ? L"nem egyezik" : L"egyezik");
return 0;
}$ file test-utf8.c
test-utf8.c: C source, UTF-8 Unicode text
$ gcc -finput-charset=utf8 test-utf8.c
$ ./a.out
Írd be, hogy árvíztűrő tükörfúrógép: árvíztűrő tükörfúrógép
Ezt írtad be: "árvíztűrő tükörfúrógép", egyezik
$ iconv -f utf8 -t iso8859-2 < test-utf8.c > test-latin2.c
$ gcc -finput-charset=iso8859-2 test-latin2.c
$ ./a.out
Írd be, hogy árvíztűrő tükörfúrógép: árvíztűrő tükörfúrógép
Ezt írtad be: "árvíztűrő tükörfúrógép", egyezikMégegyszer, röviden: a forrás tetszőleges kódlappal lehet, ha azt megmondod a fordítónak. Futásidőben pedig a setlocale megfelelő használata szükséges. Ennyi.
-
Jester01
veterán
Meghívtam, de az volt a gond akkor, hogy kiírni a forrásból jól tudtam, de a beolvasáskor elvesztek az ékezetek.
A végső, de eléggé csúnya megoldás forrását feltettem ide.
Ezzel a beolvasás billentyűzetről hibátlan, de a kiirás forráskódból hibás volna. Viszont egy függvénnyel konvertálom az ékezeteket és ezzel kiirni is tudok rendesen. Valahogy nem sikerül egyszerűen a kiirás-beolvasás konvertálás nélkül.
Fura volt továbbá, hogy pl. az swprintf(szoveg,L"állomás"); nem tartalmazhatott ékezetet, csak akkor, ha utf8 volt a forrásfájl tárolása. Viszont ekkor macerássá váltak újra a karakterek, mindent wprintf()-el tudtam csak kiirni. A beolvasás viszont hibássá vált.
A forrásfájl kódolása tetszőleges lehet és független a futásidejű kódolástól. Az aktuális locale beállításból jön, alapértelmezése pedig utf8. Persze meg is lehet adni a fordítónak, gcc esetén a -finput-charset kapcsolóval.
#include <stdio.h>
#include <wchar.h>
#include <locale.h>
int main()
{
const wchar_t* text = L"árvíztűrő tükörfúrógép";
wchar_t buf[40];
setlocale(LC_ALL, "");
wprintf(L"Írd be, hogy %ls: ", text);
fgetws(buf, 40, stdin);
buf[wcslen(buf) - 1] = 0;
wprintf(L"Ezt írtad be: \"%ls\", %ls\n", buf,
wcscmp(text, buf) ? L"nem egyezik" : L"egyezik");
return 0;
}$ file test-utf8.c
test-utf8.c: C source, UTF-8 Unicode text
$ gcc -finput-charset=utf8 test-utf8.c
$ ./a.out
Írd be, hogy árvíztűrő tükörfúrógép: árvíztűrő tükörfúrógép
Ezt írtad be: "árvíztűrő tükörfúrógép", egyezik
$ iconv -f utf8 -t iso8859-2 < test-utf8.c > test-latin2.c
$ gcc -finput-charset=iso8859-2 test-latin2.c
$ ./a.out
Írd be, hogy árvíztűrő tükörfúrógép: árvíztűrő tükörfúrógép
Ezt írtad be: "árvíztűrő tükörfúrógép", egyezikMégegyszer, röviden: a forrás tetszőleges kódlappal lehet, ha azt megmondod a fordítónak. Futásidőben pedig a setlocale megfelelő használata szükséges. Ennyi.
-
don_peter
senior tag
Lehet könyvből is, a lényeg, hogy sokat gyakorolj. Az egyszerűbb példákat is gépeld be, aztán bővítgesd, bonyolítsd a kódot a kedved szerint. Ha csak olvasod, hiába fogod fel, gyakorlás nélkül elfelejted.
Szívből ajánlom:
Stephen G Kochan - Programfejlesztés C nyelvenVannak benne leckék is.
Én ezt végigolvastam és a példa programokat is begépeltem amelyek sokban segítenek a megértésben. -
Karma
félisten
Nem próbáltam, de szerintem ez működhet.
Stdinen semmi se biztos mondjuk.
Nyilván hülyeséget írtam, a getc alaphelyzetben blokkol, ha nem tud karaktert olvasni; ezt felülbírálni meg nem lehet platformfüggetlenül...
-
#68216320
törölt tag
Meghívtam, de az volt a gond akkor, hogy kiírni a forrásból jól tudtam, de a beolvasáskor elvesztek az ékezetek.
A végső, de eléggé csúnya megoldás forrását feltettem ide.
Ezzel a beolvasás billentyűzetről hibátlan, de a kiirás forráskódból hibás volna. Viszont egy függvénnyel konvertálom az ékezeteket és ezzel kiirni is tudok rendesen. Valahogy nem sikerül egyszerűen a kiirás-beolvasás konvertálás nélkül.
Fura volt továbbá, hogy pl. az swprintf(szoveg,L"állomás"); nem tartalmazhatott ékezetet, csak akkor, ha utf8 volt a forrásfájl tárolása. Viszont ekkor macerássá váltak újra a karakterek, mindent wprintf()-el tudtam csak kiirni. A beolvasás viszont hibássá vált.
-
zka67
őstag
-
Jester01
veterán
Sziasztok, ismét elakadtam, így megint a segítségeteket kérem:
Nem tudom megoldani azt, hogy csak akkor olvasson be egy karaktert az stdin-ről, ha van karakter, magyarul ne várjon a karakterre, ha nincs.
while (1) {
if (checkInput()) doInput();
if (checkTimer()) doTimer();
}Itt a checkInput() a kérdéses, fogalmam sincs, hogy oldjam meg, hogy jelezze, ha van karakter az stdin-ben.
A segítségeteket előre is köszönöm.
Szabvány platformfüggetlen C-ben ezt szerintem nem lehet megcsinálni.
-
zka67
őstag
Sziasztok, ismét elakadtam, így megint a segítségeteket kérem:
Nem tudom megoldani azt, hogy csak akkor olvasson be egy karaktert az stdin-ről, ha van karakter, magyarul ne várjon a karakterre, ha nincs.
while (1) {
if (checkInput()) doInput();
if (checkTimer()) doTimer();
}Itt a checkInput() a kérdéses, fogalmam sincs, hogy oldjam meg, hogy jelezze, ha van karakter az stdin-ben.
A segítségeteket előre is köszönöm.
-
Jester01
veterán
Alap problémám akadt. Ékezetes karaktereket szeretnék bevinni és kiírni. Az alábbi leegyszerűsített kódal próbáltam, de az 'á' betűvel kezdődő szavakból lemarad az első betű. pl. állomás -> llomás. Az 'ékezet' szót kiírja hiba nélkül. Mit szúrok el?
#include <wchar.h>
int main()
{
wchar_t string [40];
wscanf(L"%ls",string);
wprintf(L"String: %ls", string);
return 0;
}Elfelejtetted meghívni a setlocale(LC_ALL, ""); függvényt mielőtt bármit csinálsz.
-
Ereshkigal
őstag
-
anddrew
tag
érdemes megtanulni a c programozást könyvből?

-
#68216320
törölt tag
Alap problémám akadt. Ékezetes karaktereket szeretnék bevinni és kiírni. Az alábbi leegyszerűsített kódal próbáltam, de az 'á' betűvel kezdődő szavakból lemarad az első betű. pl. állomás -> llomás. Az 'ékezet' szót kiírja hiba nélkül. Mit szúrok el?
#include <wchar.h>
int main()
{
wchar_t string [40];
wscanf(L"%ls",string);
wprintf(L"String: %ls", string);
return 0;
} -
don_peter
senior tag
Újabb cikkem amit tisztelettel ajánlok mindenikek.
Amikor a hardver és a szoftver találkozik 2. rész - DPTP System - HandText -
don_peter
senior tag
-
don_peter
senior tag
Srácok, készítettem egy kék LED-es változatot az új programmal amelyben a segítségeteket kértem.
DPTP System - HandText Blue
Jó szuperál az új program, sokkal hatékonyabb és gyorsabb mint az első változat.
Itt már jól láthatóan elkülönülnek a LED-ek egymástól nem úgy mint az elsőnél.
Pixelesebb.Itt két kép az összehasonlítás kedvéért:
Az első változat:

És a mostani új hatékonyabb és gyorsabb változat:

-
zka67
őstag
Szia, sziasztok, mint kitaláltad, egy Z80 emulátort (CP/M) készítek ARM Cortex-M3-as mikrokontrollerrel (NXP LPC1313/01), Keil uVision4 alatt.
Mégegyszer köszönöm a segítségedet.
Üdv: Zoli
-
moseras
tag
Ez sajnos nem játszik, mert az uint8_t valójában 16 bitet "foglal" ki, amit csak #pragma-val vagy attribute-al lehet alignolni 8 bitre. Ezt viszont nem szarkazmusból mondom, mert a jó múltkorában ez okozott komoly fejfájást a 32 bites PowerPC-n.MOD: Tömb... Áh, a fene este van, és azt hiszem inkább csöndben maradok.
![;]](//cdn.rios.hu/dl/s/v1.gif)
Üdv!
Nem tudom, hogy mire fejleszt, lehet, hogy PowerPC-re.
Majd visszajön (reméljük), és elmondja.
Imi.
-
buherton
őstag
Ez sajnos nem játszik, mert az uint8_t valójában 16 bitet "foglal" ki, amit csak #pragma-val vagy attribute-al lehet alignolni 8 bitre. Ezt viszont nem szarkazmusból mondom, mert a jó múltkorában ez okozott komoly fejfájást a 32 bites PowerPC-n.MOD: Tömb... Áh, a fene este van, és azt hiszem inkább csöndben maradok.
![;]](//cdn.rios.hu/dl/s/v1.gif)
-
buherton
őstag
Üdv!
MinGW/msys/Windows alatt működik. Az nem volt benne a kérdésben, hogy milyen rendszer alatt akarja futtatni, lehet mikrokontroller, Windows, Linux, Mac, BSD, akármi más. Egyébként is csak a a kimenet demonstrálása miatt írtam le, hogy mit ír ki, nem a fordítás menetét akartam megmutatni. Szerintem Ő van annyira képben, hogy le tudja fordítani az adott rendszerére a programot. Ha nem, akkor majd szól.
Imi.
Felhívnám a figyelmedet erre:
. Szarkasztikus kötekedést próbáltam jelezni ezzel, de úgy látom sikertelenül. No de, hogy tényleg kötekedjek, legközelebb $ helyett > használj, mert az előbbi az általánosab elfogadott user prompt jele Unix rendszereken.
(hát ha most már érthetőbb
) -
axioma
veterán
En ugy gondoltam, hogy az union az tartalmaz egy uint8_t[8]-t es egy olyan strukturat, amiben benne van a 16 bites BC es DE (ha annyira kell mukodjon, mint te irtal), vagy eleve egy uint16_t[4] es akkor mindet eleri, es annak a BC, DE-re valo define-ja se lenne vallalhatatlan kavaras. Es pl. a bytetombot az eredeti indexelessel hasznalhatja, mig az egyesevel union eseten duplan kell (hanyadik strukt hanyadik - 0 v. 1 - byte-ja).
-
moseras
tag
Üdv!
Igen, meg lehetne oldani union-al is.
Mondjuk készítene valami hasonlót:
typedef union {
uint16_t Val;
uint8_t v[2];
} U16_VAL;Így 1 db uint16_t-t tudna kezelni.
De szerintem ha eleve van egy nagy uint8_t tömbje, akkor direkt mutatók rácímzésével egyszerűbb.
Imi.
-
Jester01
veterán
Már miért ne fordulna? Még execute bit se kell, mert ráteszi a gcc, sőt, ./ sem kell ha úgy van beállítva a shell. Bár ezek már amúgy is a futtatásra vonatkoznak, nem a fordításra.
Inkább abba kötöttél volna bele, hogy lemaradt néhány #include ...
-
axioma
veterán
Üdv!
uint8_t zreg[8] = {0,0,0,0,0,0,0,0};
#define C zreg[0]
#define B zreg[1]
#define E zreg[2]
#define D zreg[3]
#define BC (uint16_t*)&zreg[0]
#define DE (uint16_t*)&zreg[2]
int main(int argc, char**argv)
{
int i;
*BC += 852;
*DE += 4500;
printf("BC: %d, DE: %d\n", *BC, *DE);
printf("zreg: ");
for (i = 0; i < 8; ++i) {
printf("%d ", (int)zreg[i]);
}
printf("\n");return 0;
}Eredmény:
$ gcc -o 1.exe 1.c; 1.exe
BC: 852, DE: 4500
zreg: 84 3 148 17 0 0 0 0Imi.
Huhh, lehet hogy csak az ovet fejlesztetted mukodore, de normalisan nem union erre a megoldas??
-
moseras
tag
Üdv!
MinGW/msys/Windows alatt működik. Az nem volt benne a kérdésben, hogy milyen rendszer alatt akarja futtatni, lehet mikrokontroller, Windows, Linux, Mac, BSD, akármi más. Egyébként is csak a a kimenet demonstrálása miatt írtam le, hogy mit ír ki, nem a fordítás menetét akartam megmutatni. Szerintem Ő van annyira képben, hogy le tudja fordítani az adott rendszerére a programot. Ha nem, akkor majd szól.
Imi.
-
buherton
őstag
Üdv!
uint8_t zreg[8] = {0,0,0,0,0,0,0,0};
#define C zreg[0]
#define B zreg[1]
#define E zreg[2]
#define D zreg[3]
#define BC (uint16_t*)&zreg[0]
#define DE (uint16_t*)&zreg[2]
int main(int argc, char**argv)
{
int i;
*BC += 852;
*DE += 4500;
printf("BC: %d, DE: %d\n", *BC, *DE);
printf("zreg: ");
for (i = 0; i < 8; ++i) {
printf("%d ", (int)zreg[i]);
}
printf("\n");return 0;
}Eredmény:
$ gcc -o 1.exe 1.c; 1.exe
BC: 852, DE: 4500
zreg: 84 3 148 17 0 0 0 0Imi.
Ahogy írtad úgy nem fordul. Így a helyes gcc asd.c; ./a.out (-o kapcsoló nem kell, csak ha saját nevet akarsz a binárisnak adni), de előtte az a.out-ra kell egy executable bitet rakni a usernek.
![;]](//cdn.rios.hu/dl/s/v1.gif)
-
zka67
őstag
Üdv!
uint8_t zreg[8] = {0,0,0,0,0,0,0,0};
#define C zreg[0]
#define B zreg[1]
#define E zreg[2]
#define D zreg[3]
#define BC (uint16_t*)&zreg[0]
#define DE (uint16_t*)&zreg[2]
int main(int argc, char**argv)
{
int i;
*BC += 852;
*DE += 4500;
printf("BC: %d, DE: %d\n", *BC, *DE);
printf("zreg: ");
for (i = 0; i < 8; ++i) {
printf("%d ", (int)zreg[i]);
}
printf("\n");return 0;
}Eredmény:
$ gcc -o 1.exe 1.c; 1.exe
BC: 852, DE: 4500
zreg: 84 3 148 17 0 0 0 0Imi.
Köszönöm szépen, így már működik!

-
moseras
tag
Sziasztok, egy kis segítségre lenne szükségem:
C-ben hogyan tudom azt megoldani, hogy egy 8 bites tömb elemeit tudjam írni és olvasni 16 bitesként is?
Valami ilyesmire gondoltam, csak ez nem működik, bár a fordító nem jelez hibát:
uint8_t zreg[8];
#define C zreg[0]
#define B zreg[1]
#define BC (uint16_t)zreg[0]
...
BC += 1;A segítségeteket előre is köszönöm!
Üdv!
uint8_t zreg[8] = {0,0,0,0,0,0,0,0};
#define C zreg[0]
#define B zreg[1]
#define E zreg[2]
#define D zreg[3]
#define BC (uint16_t*)&zreg[0]
#define DE (uint16_t*)&zreg[2]
int main(int argc, char**argv)
{
int i;
*BC += 852;
*DE += 4500;
printf("BC: %d, DE: %d\n", *BC, *DE);
printf("zreg: ");
for (i = 0; i < 8; ++i) {
printf("%d ", (int)zreg[i]);
}
printf("\n");return 0;
}Eredmény:
$ gcc -o 1.exe 1.c; 1.exe
BC: 852, DE: 4500
zreg: 84 3 148 17 0 0 0 0Imi.
-
zka67
őstag
Sziasztok, egy kis segítségre lenne szükségem:
C-ben hogyan tudom azt megoldani, hogy egy 8 bites tömb elemeit tudjam írni és olvasni 16 bitesként is?
Valami ilyesmire gondoltam, csak ez nem működik, bár a fordító nem jelez hibát:
uint8_t zreg[8];
#define C zreg[0]
#define B zreg[1]
#define BC (uint16_t)zreg[0]
...
BC += 1;A segítségeteket előre is köszönöm!
-
don_peter
senior tag
Úgy nézem, hogy az LCD vezérlés pont így működik.
Nem kevés sort kell hozzá legépelni
Egyelőre nincs rá szükségem így addig nem is feszegetem a témát.
Csak ésszel adagolom magamnak a dolgot, hogy legyen friss hely és, hogy meg is maradjon az agyamba
Köszi a feltárást és a kiigazítást. -
buherton
őstag
-
buherton
őstag
Nem igazán értem a kérdésed, de megpróbálok következtetni és, ha nem jó akkor újból rákérdezel.
Az RS232 az ügye a soros port.
PIC mikrovezérlőknél ezt SPI (serial peripheral interface) porton keresztül érhetjük el amelyre 1byte-os adatcsomagokba küldhetünk és fogadhatunk adatokat.
A printf() utasítás itt sem játszik. (PIC-nél legalább is erre külön rutint kell írni)Az RS232 aszinkron, az SPI szinkron ráadásul az előbbinél működik az egy irányú kommunikáció az utóbbinál kétirányú forgalom kötelező. Amire te gondolsz azaz UART, USART vagy USI. Lábnevek: Rx és Tx. Mint már fentebb írtam, hogy a stream redefiniálással lehet ügyködni, ha támogatja a fordító, és pont alkalmazható, mert a C ASCII alapú, ami 1 byte széles, és a soros porttól kezdve, minden periféria byte alapú.
-
don_peter
senior tag
-
don_peter
senior tag
Üdv!
Szerintem RS232 != SPI. Van olyan, hogy HW-es RS232, HW-es SPI, HW-es I2C, HW-es CAN, stb., de ezek egymástól függetlenek. Típustól függően vagy ez, vagy az, vagy akár mind a 4 is lehet egy kontrollerben. Sőt, akár több RS232 és/vagy SPI is lehet egy-egy kontrollerben (persze itt a nagyobbakra gondolok). Szóval szerintem az RS232 teljesen független az SPI-től. Pl. a te kontrolleredben nincs RS232, de van benne 1 SPI és 1 I2C. De pl. a PIC16F1704-ben már van 1 db RS232.
Lassan offtopic leszek...
Imi.
Látod?
Nem értettem a kérdést

-
buherton
őstag
A printf() nem használható PIC (mikrokontroller) programozásnál kivéve, ha LCD-re akarok kiírni valamit.
Mos a printf() helyett a PIC egyes portjaira és azon belül egyes bit-jeire küldöm ki az utasítást.
Tehát a printf() helyett ez van:
LED1 = ABC[karakter][6]>>mask;
LED2 = ABC[karakter][5]>>mask;
...stbEgyes fordítók támogatják a stream-ek redefiniálását. Az avr-gcc-ben pl. pont soros porti küldésre használom a printf-et.
-
moseras
tag
Nem igazán értem a kérdésed, de megpróbálok következtetni és, ha nem jó akkor újból rákérdezel.
Az RS232 az ügye a soros port.
PIC mikrovezérlőknél ezt SPI (serial peripheral interface) porton keresztül érhetjük el amelyre 1byte-os adatcsomagokba küldhetünk és fogadhatunk adatokat.
A printf() utasítás itt sem játszik. (PIC-nél legalább is erre külön rutint kell írni)Üdv!
Szerintem RS232 != SPI. Van olyan, hogy HW-es RS232, HW-es SPI, HW-es I2C, HW-es CAN, stb., de ezek egymástól függetlenek. Típustól függően vagy ez, vagy az, vagy akár mind a 4 is lehet egy kontrollerben. Sőt, akár több RS232 és/vagy SPI is lehet egy-egy kontrollerben (persze itt a nagyobbakra gondolok). Szóval szerintem az RS232 teljesen független az SPI-től. Pl. a te kontrolleredben nincs RS232, de van benne 1 SPI és 1 I2C. De pl. a PIC16F1704-ben már van 1 db RS232.
Lassan offtopic leszek...
Imi.
-
don_peter
senior tag
Nem igazán értem a kérdésed, de megpróbálok következtetni és, ha nem jó akkor újból rákérdezel.
Az RS232 az ügye a soros port.
PIC mikrovezérlőknél ezt SPI (serial peripheral interface) porton keresztül érhetjük el amelyre 1byte-os adatcsomagokba küldhetünk és fogadhatunk adatokat.
A printf() utasítás itt sem játszik. (PIC-nél legalább is erre külön rutint kell írni) -
moseras
tag
A printf() nem használható PIC (mikrokontroller) programozásnál kivéve, ha LCD-re akarok kiírni valamit.
Mos a printf() helyett a PIC egyes portjaira és azon belül egyes bit-jeire küldöm ki az utasítást.
Tehát a printf() helyett ez van:
LED1 = ABC[karakter][6]>>mask;
LED2 = ABC[karakter][5]>>mask;
...stbÜdv!
Így már értem, még annyit, hogy RS232-re is működik (régebben biztosan működött) a printf.
Imi.
-
don_peter
senior tag
A printf() nem használható PIC (mikrokontroller) programozásnál kivéve, ha LCD-re akarok kiírni valamit.
Mos a printf() helyett a PIC egyes portjaira és azon belül egyes bit-jeire küldöm ki az utasítást.
Tehát a printf() helyett ez van:
LED1 = ABC[karakter][6]>>mask;
LED2 = ABC[karakter][5]>>mask;
...stb -
moseras
tag
Az új programmal már kicsit dinamikusabban lehet állítgatni a kiírandó szövegeket

Videó róla: DPTP System - WandClock 3Üdv!
Szerintem egész jó lett. Azon gondokodtam, hogy még a "printf" az, amit ki lehetne váltani valami gyors/egyszerű résszel. Most a printf hova is küldi a karaktert ?
Imi.
-
don_peter
senior tag
-
moseras
tag
Üdv!
Isten vagy
Most én is megszaggattam ruháimat, mint Pál apostol...
Imi.
-
don_peter
senior tag
Üdv!
Ha
static const unsigned char ABC[40][7]
írsz, akkor (legalábbis régebben így volt) a FLASH-be, vagyis a program memóriába teszi a tömböt. Tehát fontos a const módosító. Mivel ezt te csak olvasod, ezért neked ez így megfelelő. Bár nem tudom, hogy milyen C fordítót használsz, de a Microchip PIC18-as fordítója régebben const módosító esetén a FLASH-be tette.
Imi.
Isten vagy

Már minden variációt kipróbáltam, de pont ezt hagytam ki.
Már is mehet a fejlesztésem tovább..
Egyébként MPLAB és Hi-Tech 10-12-16-os a fordítóm mivel PIC16F684-es okoskával dolgozom, most ... -
moseras
tag
Ismét elakadtam, kérném segítségeteket.
Van egy rohadt nagy tömböm ami így néz ki://A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 - : .
static unsigned char ABC[40][7] ={{0b00000,//A
0b01110,
0b10001,
0b10001,
0b11111,
0b10001,
0b10001},
{0b00000,//B
0b11110,
0b10001,
0b11110,
0b10001,
0b10001,
0b11110}, ...};P18F684-es chip-el dolgozom aminek csak 128byte adatmemóriája van.
A kérdésem az lenne, hogy van e mód egy 280byte-os területű tömb használatára?
Vagy, ha ennek esélye nem sok, milyen módon tudnám kikerülni, hogy ne foglaljon le ekkora területet?
Vagy egy hatékonyabb megoldás elmélete is érdekelhet.
Most egy switch() elágazással oldottam meg, de ez véleményem szerint nem hatékony, nem mellesleg zabálja a program memóriát.
Előre is köszi..Üdv!
Ha
static const unsigned char ABC[40][7]
írsz, akkor (legalábbis régebben így volt) a FLASH-be, vagyis a program memóriába teszi a tömböt. Tehát fontos a const módosító. Mivel ezt te csak olvasod, ezért neked ez így megfelelő. Bár nem tudom, hogy milyen C fordítót használsz, de a Microchip PIC18-as fordítója régebben const módosító esetén a FLASH-be tette.
Imi.
-
don_peter
senior tag
Ismét elakadtam, kérném segítségeteket.
Van egy rohadt nagy tömböm ami így néz ki://A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 - : .
static unsigned char ABC[40][7] ={{0b00000,//A
0b01110,
0b10001,
0b10001,
0b11111,
0b10001,
0b10001},
{0b00000,//B
0b11110,
0b10001,
0b11110,
0b10001,
0b10001,
0b11110}, ...};P18F684-es chip-el dolgozom aminek csak 128byte adatmemóriája van.
A kérdésem az lenne, hogy van e mód egy 280byte-os területű tömb használatára?
Vagy, ha ennek esélye nem sok, milyen módon tudnám kikerülni, hogy ne foglaljon le ekkora területet?
Vagy egy hatékonyabb megoldás elmélete is érdekelhet.
Most egy switch() elágazással oldottam meg, de ez véleményem szerint nem hatékony, nem mellesleg zabálja a program memóriát.
Előre is köszi.. -
don_peter
senior tag
Üdv!
Talán egyszerűbb:
void karakter(unsigned char karakter, unsigned char irany){
unsigned char i;
unsigned char normal = (irany == '0');
unsigned char mask_end = normal ? 0 : 0x20;
unsigned char mask;
for(i=0; i<7; i++){
mask = normal ? 0x10 : 0x01;
while (mask != mask_end) {
if (ABC[karakter][i] & mask){
printf("o");
}else{
printf(".");
}
if(normal) {
mask >>= 1;
} else {
mask <<= 1;
}
}
printf("\n");
}
}Imi.
Igen ez egyszerűbb.
Köszi..
-
moseras
tag
Ezt a függvényt szeretném egyszerűsíteni:
A lényege, hogy kap egy karaktert és egy irany változót.
Ha az irany = 0, akkor balról-jobbra vagy is normálisan írja ki a karaktert, de ha az irany = 1, akkor jobbról-balra írja ki a karaktert.
Így:
.....
oooo.
o...o
oooo.
o...o
o...o
oooo.
.....
.oooo
o...o
.oooo
o...o
o...o
.ooooA kód:
void karakter(unsigned char karakter, unsigned char irany){
unsigned char i, mask;
for(i=0; i<7; i++){
if(irany == '1'){
for(mask=0x01; mask != 0x20; mask <<= 1){
if (ABC[karakter][i] & mask){
printf("o");
}else{
printf(".");
}
}
}else{
for(mask=0x10; mask != 0; mask >>= 1){
if (ABC[karakter][i] & mask){
printf("o");
}else{
printf(".");
}
}
}
printf("\n");
}
}Előre is köszi...
Üdv!
Talán egyszerűbb:
void karakter(unsigned char karakter, unsigned char irany){
unsigned char i;
unsigned char normal = (irany == '0');
unsigned char mask_end = normal ? 0 : 0x20;
unsigned char mask;
for(i=0; i<7; i++){
mask = normal ? 0x10 : 0x01;
while (mask != mask_end) {
if (ABC[karakter][i] & mask){
printf("o");
}else{
printf(".");
}
if(normal) {
mask >>= 1;
} else {
mask <<= 1;
}
}
printf("\n");
}
}Imi.
-
don_peter
senior tag
Ezt a függvényt szeretném egyszerűsíteni:
A lényege, hogy kap egy karaktert és egy irany változót.
Ha az irany = 0, akkor balról-jobbra vagy is normálisan írja ki a karaktert, de ha az irany = 1, akkor jobbról-balra írja ki a karaktert.
Így:
.....
oooo.
o...o
oooo.
o...o
o...o
oooo.
.....
.oooo
o...o
.oooo
o...o
o...o
.ooooA kód:
void karakter(unsigned char karakter, unsigned char irany){
unsigned char i, mask;
for(i=0; i<7; i++){
if(irany == '1'){
for(mask=0x01; mask != 0x20; mask <<= 1){
if (ABC[karakter][i] & mask){
printf("o");
}else{
printf(".");
}
}
}else{
for(mask=0x10; mask != 0; mask >>= 1){
if (ABC[karakter][i] & mask){
printf("o");
}else{
printf(".");
}
}
}
printf("\n");
}
}Előre is köszi...
-
don_peter
senior tag
Mennyi RAM és flashed van? A static tömböket rakhatod a flashre is ha nincs elé RAM-od (compiler manualt kell megnézni). A számokat pl. a tömb méret for ciklus meddig menjen, azokat ajánlott #define-olni. Ez sem rossz forma mask = 0x10;, de ez olvashatóbb mask = (1<<4) és nem foglal több helyet, mert a fordító az ilyeneket kiszámolja. mask >>= 1; ez is inkább így mask = (1<<(z + 4));, mert ebből a sorból már látod, hogy a 4. bittől fölfelé akarod a biteket elérni és nem kell még feltekeni, hogy mi is volt a kiinduló érték. De ez minden rajtad, csak az olvashatóságon szeretnék segíteni.
Device: PIC16F684
Flash (words): 2048
SRAM (bytes): 128
EEPROM (bytes): 256Az átláthatóság nekem is számít és fontos.
Bár átlátom már Nagyából a hexát is
-
buherton
őstag
Tetszik mert kisebb memória kell neki

Köszi kicserélem illetve mutatom az egészet kompletten
//A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 - : .
static char ABC[40][7] ={{0b00000,//A
0b01110,
0b10001,
0b10001,
0b11111,
0b10001,
0b10001}
};
unsigned char karakteratvalto(unsigned char karakter){
static char chars[40] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-:. ";
unsigned char i, result;
for(i=0; i<40; i++){
if(karakter == chars[i]){
result = i;
break;
}
}
return result;
}
void karakter(unsigned char karakter){
unsigned char i, z;
unsigned char mask = 0x10;
for(i=0; i<7; i++){
for(z=0; z<5; z++){
if (ABC[karakter][i] & mask){
printf("o");
}else{
printf(".");
}
mask >>= 1;
}
mask = 0x10;
printf("\n");
}
}Így néz ki a teljes kód.
Az ABC az végig van írva rendesen úgy ahogyan látod a kommentált részben is.
Mennyi RAM és flashed van? A static tömböket rakhatod a flashre is ha nincs elé RAM-od (compiler manualt kell megnézni). A számokat pl. a tömb méret for ciklus meddig menjen, azokat ajánlott #define-olni. Ez sem rossz forma mask = 0x10;, de ez olvashatóbb mask = (1<<4) és nem foglal több helyet, mert a fordító az ilyeneket kiszámolja. mask >>= 1; ez is inkább így mask = (1<<(z + 4));, mert ebből a sorból már látod, hogy a 4. bittől fölfelé akarod a biteket elérni és nem kell még feltekeni, hogy mi is volt a kiinduló érték. De ez minden rajtad, csak az olvashatóságon szeretnék segíteni.
-
don_peter
senior tag
Tetszik mert kisebb memória kell neki

Köszi kicserélem illetve mutatom az egészet kompletten
//A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 - : .
static char ABC[40][7] ={{0b00000,//A
0b01110,
0b10001,
0b10001,
0b11111,
0b10001,
0b10001}
};
unsigned char karakteratvalto(unsigned char karakter){
static char chars[40] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-:. ";
unsigned char i, result;
for(i=0; i<40; i++){
if(karakter == chars[i]){
result = i;
break;
}
}
return result;
}
void karakter(unsigned char karakter){
unsigned char i, z;
unsigned char mask = 0x10;
for(i=0; i<7; i++){
for(z=0; z<5; z++){
if (ABC[karakter][i] & mask){
printf("o");
}else{
printf(".");
}
mask >>= 1;
}
mask = 0x10;
printf("\n");
}
}Így néz ki a teljes kód.
Az ABC az végig van írva rendesen úgy ahogyan látod a kommentált részben is.
-
Jester01
veterán
Ehhez mit szólsz?
void karakter(unsigned char karakter){
unsigned char i, mask;
for(i=0; i<7; i++){
for(mask=0x10; mask != 0; mask >>= 1){
if (ABC[karakter][i] & mask){
printf("o");
}else{
printf(".");
}
}
printf("\n");
}
} -
don_peter
senior tag
Elvileg igen

Kukk meg:void karakter(unsigned char karakter){
unsigned char i, z;
unsigned char mask = 0x10;
for(i=0; i<7; i++){
for(z=0; z<5; z++){
if (ABC[karakter][i] & mask){
printf("o");
}else{
printf(".");
}
mask >>= 1;
}
mask = 0x10;
printf("\n");
}
} -
Jester01
veterán
-
don_peter
senior tag
Igen köszönöm.
Igazad volt, ez a jó és egyszerűbb megoldás.
Már le is programoztam a függvénykét.
Már csak a protra írást kell leprogramoznom és kész.
-
Jester01
veterán
for ciklusban még nem adtam meg 4. feltételt, de lehet majd kipróbálom.
A mostani kódom így néz ki://void karakter(char betu){
char i, x, y=4, z;
for(z=0; z<40; z++){
for(x=0; x<7; x++){
for(i=0; i<5; i++){
if((ABC[z][x]>>y)&1 == 1){
printf("o");
}else{
printf(".");
}
y--;
}
y=4;
printf("\n");
}
}
//}Lényege, hogy mindegyik byte első bit-jét kell kiraknom portra, vagy is, hogy 7bit-et kapjak függőlegesen.
A 7 bi-tet a 7 byte első bitjei teszik ki azért 7 bit mert 7db ledet kell kapcsolgatnom.
Vízszintesen pedig 5 bit kell jelen pillanatban, de ez ügye 8-ig gond nélkül növelhető.
Azért csak 5 mert 7x5-os a szabvány.
A függvényt úgy kell majd megírjam, hogy oda vissza ki tuja tenni a biteket.
Tehát mikor lendítem a karom akkor kapcsol a gyorsulás kapcsoló és elindul a program, mikor a lendítés eléri a holtpontot és visszafordul akkor váltani kell a programnak és az ellentétes oldalról kell végig léptetni e a biteket, így kapnék egy teljesen jó és egyletes kijelzést.
Persze itt az időzítés és a lendítés sebessége nagyon fontos.
Nem tudom mennyire volt érthető amit akartam mondani
Akkor neked a maszk léptetése lesz célszerűbb, az >> y helyett.
char mask = 0x10; /* 5 bit, y = 4 helyett */
...
if (ABC[z][x] & mask) {
...
mask >>= 1; /* y-- helyett */
...
mask = 0x10; /* y = 4 helyett */ -
don_peter
senior tag
Mikrokontrolleren számíthat, hogy >> i vagy >> 1 mert előbbi lehetséges, hogy csak egy ciklusban, egyesével valósítható meg. A kiírást tehát célszerű úgy csinálni, hogy csak egyet léptetsz, az értéket (ha módosítható) vagy a maszkot.
for(i=0; i<8; i++, bitek >>= 1) {
if (bitek & 1) {
...
}
}Bizonyos esetekben a visszafelé futó ciklus is kisebb/gyorsabb lehet.
for ciklusban még nem adtam meg 4. feltételt, de lehet majd kipróbálom.
A mostani kódom így néz ki://void karakter(char betu){
char i, x, y=4, z;
for(z=0; z<40; z++){
for(x=0; x<7; x++){
for(i=0; i<5; i++){
if((ABC[z][x]>>y)&1 == 1){
printf("o");
}else{
printf(".");
}
y--;
}
y=4;
printf("\n");
}
}
//}Lényege, hogy mindegyik byte első bit-jét kell kiraknom portra, vagy is, hogy 7bit-et kapjak függőlegesen.
A 7 bi-tet a 7 byte első bitjei teszik ki azért 7 bit mert 7db ledet kell kapcsolgatnom.
Vízszintesen pedig 5 bit kell jelen pillanatban, de ez ügye 8-ig gond nélkül növelhető.
Azért csak 5 mert 7x5-os a szabvány.
A függvényt úgy kell majd megírjam, hogy oda vissza ki tuja tenni a biteket.
Tehát mikor lendítem a karom akkor kapcsol a gyorsulás kapcsoló és elindul a program, mikor a lendítés eléri a holtpontot és visszafordul akkor váltani kell a programnak és az ellentétes oldalról kell végig léptetni e a biteket, így kapnék egy teljesen jó és egyletes kijelzést.
Persze itt az időzítés és a lendítés sebessége nagyon fontos.
Nem tudom mennyire volt érthető amit akartam mondani
-
Jester01
veterán
Igen, igen...
Tudtam, hogy miért nem jó a kódom, csak azt nem tudtam, hogy oldjam meg az egyes helyi értékek vizsgálatát anélkül, hogy az megváltozna.
Ettől független köszönöm a magyarázatot.Egyébként egy HandClock vagy, ha jobban tetszik WandClock-nak nevezett kézi kütyüt készítettem a magam szórakoztatására és persze tanulás céljából és ehhez kell egy jobb hatásfokkal dolgozó kódot írnom, amely mátrixos multiplexeléssel rakja ki függőlegesen feltörve az egyes bitek értékeit a proci lábaira.
Sajnos a mostani kódom ugyan működik, de nem tökéletes így muszáj fejlesztenem még rajta, de már a PIC memóriáját 97%-ra tele írtam
Itt van egy kép majd egy két videó a kütyüről:

És a videók: DPTP System - WandClock 1.0
DPTP System - WandClock 2Mikrokontrolleren számíthat, hogy >> i vagy >> 1 mert előbbi lehetséges, hogy csak egy ciklusban, egyesével valósítható meg. A kiírást tehát célszerű úgy csinálni, hogy csak egyet léptetsz, az értéket (ha módosítható) vagy a maszkot.
for(i=0; i<8; i++, bitek >>= 1) {
if (bitek & 1) {
...
}
}Bizonyos esetekben a visszafelé futó ciklus is kisebb/gyorsabb lehet.
-
don_peter
senior tag
Igen, igen...
Tudtam, hogy miért nem jó a kódom, csak azt nem tudtam, hogy oldjam meg az egyes helyi értékek vizsgálatát anélkül, hogy az megváltozna.
Ettől független köszönöm a magyarázatot.Egyébként egy HandClock vagy, ha jobban tetszik WandClock-nak nevezett kézi kütyüt készítettem a magam szórakoztatására és persze tanulás céljából és ehhez kell egy jobb hatásfokkal dolgozó kódot írnom, amely mátrixos multiplexeléssel rakja ki függőlegesen feltörve az egyes bitek értékeit a proci lábaira.
Sajnos a mostani kódom ugyan működik, de nem tökéletes így muszáj fejlesztenem még rajta, de már a PIC memóriáját 97%-ra tele írtam
Itt van egy kép majd egy két videó a kütyüről:

És a videók: DPTP System - WandClock 1.0
DPTP System - WandClock 2 -
Jester01
veterán
Ha esetleg nem tiszta, mi volt a probléma az eredeti kóddal: a >> operátor eltolta ugyan a legkisebb helyiértékre a bitet amit ki akartál írni, viszont a tőle balra lévők együtt mozogtak vele, tehát nem csak az a bit maradt meg amit vizsgálni akartál.
-
don_peter
senior tag
-
axioma
veterán
1. ha felulrol akarod, akkor bitek >> (7-i) (vagy persze megforditod a for ciklust, de akkor fiygelj hogy ne unsigned legyen, mert akkor a >0 mindig igaz)
2. a letolassal csak az also biten lesz az, amit akarsz, de felette maradtak tovabbi bitek! Ket lehetoseged van (kb. ugyanaz lesz gepi kodban ha jo az optimalizacio): vagy vizsgalod ennek a 2-es maradekat (%2), vagy szo szerint nezed az utolso bitet (bitwise and -del, azaz &1), es persze igy mar vizsgalhatod az egyenloseget az 1-gyelszerk. upsz de lassu vagyok...
-
moseras
tag
-
kispx
addikt
Nincs közelembe C fodító, de...
ha eltolod balra a biteket, akkor a legutolso helyen 0 vagy 1 lesz, tehat vagy paros vagy paratlan a szam. Ezt egy modulo kepzessel meg is lehet mondani.
if(bitek>>i % 2 == 0)
paros (0)
else paratlan (1)Szerk.:
nezopont kerdese, de szerintem mindketten forditott sorrendben fogjuk megkapni a biteket -
don_peter
senior tag
Ezzel próbálkozom, de sajnos nem jó:
char i;
unsigned char bitek = 0b00011000;
for(i=0; i<8; i++){
if(bitek>>i == 1){
printf("egyes\n");
}else{
printf("nulla\n");
}
} -
don_peter
senior tag
Srácok, hogy lehet egy előre beállított 8 bites értéket bejárni?
Tehát van egy ilyen beállított változom:
valtozo = 0b00011000;
Ezt szeretném úgy bejárni, hogy a nulláknál kiírja, hogy nulla, az egyeseknél, hogy egyes.
Előre is köszi a segítséget. -
emvy
félisten
A konvencio az, hogy ha a char erteket szovegkent ertelmezed, akkor siman 'char'-kent hasznalod, ha szamkent ertelmezed, akkor pedig signed vagy unsigned chart-t hasznalsz.
-
k.kristof
őstag
Úgy látom még nem volt szó az Insane Coding blogról. C/C++ témakörben vannak jó írások, nemrég találtam a linket.
A legújabb a Memory management in C and auto allocating sprintf() - asprintf().
-
alapz@j
tag
Szerintetek mi az oka annak, hogy a string.h függvényei char* paramétereket fogadnak és char* értékeket adnak vissza unsigned char* helyett, ami - szerintem - a logikus lenne?
-
buherton
őstag
Van ötlete valakinek, hogy az uint8_t-nak a 32 bites fordító, miért foglal le 16 bitet? Bitfieldről van, amiben 8 bit van és uint8_t a típusuk. Az uint8_t önmagában véve 8 bites. Az attribute packed mahinálás nem működik.
MOD: nem teszt kérdés, őszintén nem tudom.
-
buherton
őstag
-
kispx
addikt
Enum
A 8 bites architektúrán az enum 8 biten van ábrázolva, ami nem okoz gondot, ha memset-elni szeretnénk a tömböt hiszen az is bájtszintű. Viszont 32 bites architektúrán az enum 32 biten van ábrázolva, ami ugye 4 bájt. Ekkor ha deklarálsz egy tömböt, akkor egy tömb elem 4 bájt, viszont a memset továbbra is 1 bájtot állít. Így a 0 kivételével nem azt fogja csinálni, mint vártuk.
Komment
// komment \
komment \
komment \
komment vege
Ugy hogy ovatosan a \-el, mert meg tud szivatni.(#4825) k.kristof: nekem beágyazott rendszerek a területem, itt egy kicsit más várnak el.
MOD: eszembe jutott még egy
Az előbbi leforul, ez viszont nem fog:
// komment \
komment \
komment \
komment vegePróbáljátok csak ki
.Mi a különbség a két lommentes példa között? Lehet, hogy fáradt vagyok, de semmi különbséget nem fedezek fel közöttük. C fordító pedig most nincs kéznél.
Szerk.:A 3. sornál a sorvégi szóköz?
-
buherton
őstag
Enum
A 8 bites architektúrán az enum 8 biten van ábrázolva, ami nem okoz gondot, ha memset-elni szeretnénk a tömböt hiszen az is bájtszintű. Viszont 32 bites architektúrán az enum 32 biten van ábrázolva, ami ugye 4 bájt. Ekkor ha deklarálsz egy tömböt, akkor egy tömb elem 4 bájt, viszont a memset továbbra is 1 bájtot állít. Így a 0 kivételével nem azt fogja csinálni, mint vártuk.
Komment
// komment \
komment \
komment \
komment vege
Ugy hogy ovatosan a \-el, mert meg tud szivatni.(#4825) k.kristof: nekem beágyazott rendszerek a területem, itt egy kicsit más várnak el.
MOD: eszembe jutott még egy
Az előbbi leforul, ez viszont nem fog:
// komment \
komment \
komment \
komment vegePróbáljátok csak ki
. -
emvy
félisten
Munkáltató teszteken nem ilyen jellegű kérdések szoktak lenni, hanem írjon algoritmust és a fentebb írt szivatós kérdések.
(#4822) axioma: Ha jelentkezőt kellene tesztelni ahhoz lenne pár ötletem és akkor saját kútfőből, saját tapasztalatom alapján állítanám össze. A probléma, hogy most más állítja össze és én a másik oldalon ülök.
Például az enum-os kérdésem tapasztalatból jön. Adott volt egy enum tömb, amit használtunk 8- és 32 bites architektúrán is. A probléma ott kezdődöt, amikor memset-el 0-tól különböző értékkel próbáltuk inicializálni a tömböt.
MOD: eszembe jutott még egy. Ugye ezzel // egy sort lehet kikommentezni, vagy mégsem?
![;]](//cdn.rios.hu/dl/s/v1.gif)
Gondolom a digrafokra meg a trigrafokra gondolsz.
-
k.kristof
őstag
Munkáltató teszteken nem ilyen jellegű kérdések szoktak lenni, hanem írjon algoritmust és a fentebb írt szivatós kérdések.
(#4822) axioma: Ha jelentkezőt kellene tesztelni ahhoz lenne pár ötletem és akkor saját kútfőből, saját tapasztalatom alapján állítanám össze. A probléma, hogy most más állítja össze és én a másik oldalon ülök.
Például az enum-os kérdésem tapasztalatból jön. Adott volt egy enum tömb, amit használtunk 8- és 32 bites architektúrán is. A probléma ott kezdődöt, amikor memset-el 0-tól különböző értékkel próbáltuk inicializálni a tömböt.
MOD: eszembe jutott még egy. Ugye ezzel // egy sort lehet kikommentezni, vagy mégsem?
![;]](//cdn.rios.hu/dl/s/v1.gif)
Én kaptam 2-3 oldalnyi feladatot, mindegyik olyan volt, hogy mit csinál az adott kódrészlet.
-
Karma
félisten
Munkáltató teszteken nem ilyen jellegű kérdések szoktak lenni, hanem írjon algoritmust és a fentebb írt szivatós kérdések.
(#4822) axioma: Ha jelentkezőt kellene tesztelni ahhoz lenne pár ötletem és akkor saját kútfőből, saját tapasztalatom alapján állítanám össze. A probléma, hogy most más állítja össze és én a másik oldalon ülök.
Például az enum-os kérdésem tapasztalatból jön. Adott volt egy enum tömb, amit használtunk 8- és 32 bites architektúrán is. A probléma ott kezdődöt, amikor memset-el 0-tól különböző értékkel próbáltuk inicializálni a tömböt.
MOD: eszembe jutott még egy. Ugye ezzel // egy sort lehet kikommentezni, vagy mégsem?
![;]](//cdn.rios.hu/dl/s/v1.gif)
Ezt a záró kérdésedet meg is válaszolhatnád, mert nem jön át, mire gondolsz

-
buherton
őstag
Munkáltató teszteken nem ilyen jellegű kérdések szoktak lenni, hanem írjon algoritmust és a fentebb írt szivatós kérdések.
(#4822) axioma: Ha jelentkezőt kellene tesztelni ahhoz lenne pár ötletem és akkor saját kútfőből, saját tapasztalatom alapján állítanám össze. A probléma, hogy most más állítja össze és én a másik oldalon ülök.
Például az enum-os kérdésem tapasztalatból jön. Adott volt egy enum tömb, amit használtunk 8- és 32 bites architektúrán is. A probléma ott kezdődöt, amikor memset-el 0-tól különböző értékkel próbáltuk inicializálni a tömböt.
MOD: eszembe jutott még egy. Ugye ezzel // egy sort lehet kikommentezni, vagy mégsem?
![;]](//cdn.rios.hu/dl/s/v1.gif)
-
axioma
veterán
Ja, azt hittem fel akarsz venni munkatarsat, es ahhoz kell a teszt...
Konkretan a Siemensben anno ket honapon belul ketszer jutott el hozzam az a kerdes, hogy milyen rendezest kell alkalmazni (mire keressen ra a neten), ha egy kisebb es ritkan valtozo szamhalmazbol nagyon sokszor kell egy masik, surun valtozo szamhoz kivalasztani azt az elemet, amelyik a legnagyobb kezdoszelete. Ezt csinaljak a telefonkozpontok amikor intelligens szolgaltatasok vannak hozzarendelve (a maradek meg a szolgaltatas parametere). Oszinten kivancsi vagyok, hogy erre mit mond a gugli, mar persze ha nem vagod serobol a megoldast.
Termeszetesen nem tesztelni akarlak, csak egy egyszeru eletszagu peldat mondtam, ahol az algotudassal tobbre mentem (jelzem, tok veletlenul egy versenyekre felkeszito mindenen felul felvett oran hallottam... anelkul nem tuti hogy "kirakom"). Megvalositva egyebkent ket kulonbozo nyelven, tok mas programok reszekent lett. -
emvy
félisten
Oké
.a[i] = i++;
Mit eredményez?
char foo[3] = "bar";
Mi lesz a tömbben?
char *string = "foo bar";
Miért nem módosítható pl. az első elem? Egyáltalán lefordul? Ha igen/nem miért?
typedef struct foo *BAR;
struct x
{
char c;
BAR ptr;
};Lefordul?
struct x
{
char c;
int i;
} foo bar;Lefordul? Ha igen/nem miért?
Az enum teljesen mértékben portábilis?
Az elsőről már hallottam, de még soha nem használtam (nem kellett még). Bevallom derekasan a középsőről nem hallottam még. Az object (.o) fájl (és mellé kerülnek egyéb fájlok, mint pl. a nagyon hasznos .lst is) a következő lépcső a preprocesszált fájl után, ami gyakorlati értelembe vett fordtási szakasz. A header fájlok alapján kívülről elérhetők az egyesek függvények, tömbök, változók, és egyéb szimbólumok, amit majd később a linket fog összekötözgetni. A linker már teljesen független a nyelvtől. Szimbólumokat kötözgeti össze és közben persze figyelembe veszi az egyéb fordítónak szóló utasításokat, amivel mondjuk linkelés során tovább lehet optimalizálni, függvényeket elhelyezni a memóriatérben, összecsomagolja pl. a struktúrákat (__attribute__(packed)) stb... Kimenete a bináris/hex (Intel, Motorola, stb...), .map (memória térkép, meg lehet nézni hogy az egyes függvények és társaik hol találhatók), .elf (debuggoláshoz kell). Azt tudni kell, hogy a forítás során utasítani lehet hogy az egyes program blokkokat egy egységként kezelje, aminek az eredménye, hogy a szorosan összetartozó object fájlokat már a fordítás során összelinkelni .a-fájlá. Az optimalizálás hatékonyabb, hogy ha két körösen fordítunk, ahol az első körben csak kielemzi az optimalizálási lehetőséget, majd második körben további optimalizációs lehetőségeket keres, majd fordít. Bár a tudásom megkopott, mert jó ideje nem kellett ezzel foglalkoznom.
Oke, nem vizsgaztatlak, csak irtam tippeket. A karaktertombos meg inkrementes dolog szerintem inkabb beugrokerdes, mint advanced C.
-
buherton
őstag
C-t akarsz tesztelni vagy algoritmust csak C-ben megvalositva?
(Ami kiguglizhato, az nem azert nem jo kerdes szigoruan szvsz, mert azt munka kozben is kiguglizza es hasznalja. Amit viszont o kell megalkosson... azt eleve tudnia kell.) Persze ha kodolas kell es nem az alkoto munka, akkor mind1.
Multkor egy konyvet neztem amit valaki ajanlott (de mikor mar elvi hibat is vetett a "megoldasban", nem csak elirast meg felesleges, de a megoldast nem zavaro koroket, akkor felreraktam), ott volt egy rakat linkelt listas feladat, ami pointeres, meg az adatszerkezetet is kitalalhatja hozza. Ilyen volt pl. hogy "korrupt" linkelt listaban (az utolso elem valami koztes elemre mutat) keresd meg konstans tarhely es ordo(N) muveletigennyel az elso ismetlodo elemet. De ehhez mar a trukkot kell ismerni (ordo(N^2) vagy felesleges bit per elem megengedesevel persze nem is nehez).Konkrétan a nyelv érdekel. Az algoritmusok után a google-ban utána tudok keresni. Köszi
. -
buherton
őstag
Oké
.a[i] = i++;
Mit eredményez?
char foo[3] = "bar";
Mi lesz a tömbben?
char *string = "foo bar";
Miért nem módosítható pl. az első elem? Egyáltalán lefordul? Ha igen/nem miért?
typedef struct foo *BAR;
struct x
{
char c;
BAR ptr;
};Lefordul?
struct x
{
char c;
int i;
} foo bar;Lefordul? Ha igen/nem miért?
Az enum teljesen mértékben portábilis?
Az elsőről már hallottam, de még soha nem használtam (nem kellett még). Bevallom derekasan a középsőről nem hallottam még. Az object (.o) fájl (és mellé kerülnek egyéb fájlok, mint pl. a nagyon hasznos .lst is) a következő lépcső a preprocesszált fájl után, ami gyakorlati értelembe vett fordtási szakasz. A header fájlok alapján kívülről elérhetők az egyesek függvények, tömbök, változók, és egyéb szimbólumok, amit majd később a linket fog összekötözgetni. A linker már teljesen független a nyelvtől. Szimbólumokat kötözgeti össze és közben persze figyelembe veszi az egyéb fordítónak szóló utasításokat, amivel mondjuk linkelés során tovább lehet optimalizálni, függvényeket elhelyezni a memóriatérben, összecsomagolja pl. a struktúrákat (__attribute__(packed)) stb... Kimenete a bináris/hex (Intel, Motorola, stb...), .map (memória térkép, meg lehet nézni hogy az egyes függvények és társaik hol találhatók), .elf (debuggoláshoz kell). Azt tudni kell, hogy a forítás során utasítani lehet hogy az egyes program blokkokat egy egységként kezelje, aminek az eredménye, hogy a szorosan összetartozó object fájlokat már a fordítás során összelinkelni .a-fájlá. Az optimalizálás hatékonyabb, hogy ha két körösen fordítunk, ahol az első körben csak kielemzi az optimalizálási lehetőséget, majd második körben további optimalizációs lehetőségeket keres, majd fordít. Bár a tudásom megkopott, mert jó ideje nem kellett ezzel foglalkoznom.
-
axioma
veterán
Valaki tud igazán durva C tesztet? Aminél még egy tapasztalt programozónak is vakarnia kell a fejét. Az a baj, hogy a neten találtam párat, de azok nem elég kemények. Lehetőleg ne a printf, fopen, fseek és társaira feküjdön rá, mert azt úgy sem használom, hanem a deklarálás, definiálás, inicializálás, pointerek legyenek lehetőleg.
C-t akarsz tesztelni vagy algoritmust csak C-ben megvalositva?
(Ami kiguglizhato, az nem azert nem jo kerdes szigoruan szvsz, mert azt munka kozben is kiguglizza es hasznalja. Amit viszont o kell megalkosson... azt eleve tudnia kell.) Persze ha kodolas kell es nem az alkoto munka, akkor mind1.
Multkor egy konyvet neztem amit valaki ajanlott (de mikor mar elvi hibat is vetett a "megoldasban", nem csak elirast meg felesleges, de a megoldast nem zavaro koroket, akkor felreraktam), ott volt egy rakat linkelt listas feladat, ami pointeres, meg az adatszerkezetet is kitalalhatja hozza. Ilyen volt pl. hogy "korrupt" linkelt listaban (az utolso elem valami koztes elemre mutat) keresd meg konstans tarhely es ordo(N) muveletigennyel az elso ismetlodo elemet. De ehhez mar a trukkot kell ismerni (ordo(N^2) vagy felesleges bit per elem megengedesevel persze nem is nehez). -
emvy
félisten
Valaki tud igazán durva C tesztet? Aminél még egy tapasztalt programozónak is vakarnia kell a fejét. Az a baj, hogy a neten találtam párat, de azok nem elég kemények. Lehetőleg ne a printf, fopen, fseek és társaira feküjdön rá, mert azt úgy sem használom, hanem a deklarálás, definiálás, inicializálás, pointerek legyenek lehetőleg.
Pointerek, inicializalas nem lehet tul kemeny.
- longjmp/setjmp-re adj pelda
- implementalj late bound funkciohivasokat C-ben
- meseld el, mi az az objekt file, hogy mukodik a linker -
buherton
őstag
Valaki tud igazán durva C tesztet? Aminél még egy tapasztalt programozónak is vakarnia kell a fejét. Az a baj, hogy a neten találtam párat, de azok nem elég kemények. Lehetőleg ne a printf, fopen, fseek és társaira feküjdön rá, mert azt úgy sem használom, hanem a deklarálás, definiálás, inicializálás, pointerek legyenek lehetőleg.
-
Karma
félisten
Valószínűleg azért, mert nem része a C szabványnak, ennek ellenére elég széles körben támogatott a Wikipedia szerint. Egyetemen C++-nál tanította a gyakorlatvezető, de azon kívül én se emlékszem, hogy láttam volna.
A Visual Studio ilyet szokott generálni a headerbe, amikor az ember C++/CX osztályokat ír. Ott találkoztam vele először.
-
k.kristof
őstag
Valószínűleg azért, mert nem része a C szabványnak, ennek ellenére elég széles körben támogatott a Wikipedia szerint. Egyetemen C++-nál tanította a gyakorlatvezető, de azon kívül én se emlékszem, hogy láttam volna.
-
buherton
őstag
-
buherton
őstag
Egy picit egyszerűbb verzió. Bár ha az eredeti is ellátja a funkciót, akkor nem biztos, hogy kifog kopni ez az old-school megoldás. Nem is láttam még ezt a pragma-s verziót.
-
Karma
félisten
Header-guardnak hívják. Az ok, amiért létezik azaz, hogy egy forrásból akaratlanul is többször hívódhat ugyanaz a header fájl*, ekkor minden, ami az adott header fájl tartalmaz az többször fog szerepelni. Ennek a fordítók nem igazán szoktak örülni.
* például: source.c-nek szüksége van foo.h-ra és bar.h-ra, igen ám de a bar.h-nak is szüksége van a foo.h-ra
Meg include/inclusion guardnak, esetleg macro guardnak is.
Kicsit modernebb alternatívája a fájl elejére lerakott:
#pragma once
Wikipédia alapján a nagy fordítók mindegyike támogatja már.
-
buherton
őstag
Na, megint jövök a kérdéseimmel
Csinálgatok most egy kis programot, amihez több, külső forrásból való kódot használok fel. Olvasgattam a hozzájuk tartozó header fájlokat, és feltűnt, hogy olyan definíciók vannak a fájlok elején, hogy(aes.h)
#ifndef AES_H
#define AES_H
...
#endif(sha256.h)
#ifndef SHA256_H
#define SHA256_H
...
#endifstb. Ezeknek pontosan mi a célja és értelme?
Header-guardnak hívják. Az ok, amiért létezik azaz, hogy egy forrásból akaratlanul is többször hívódhat ugyanaz a header fájl*, ekkor minden, ami az adott header fájl tartalmaz az többször fog szerepelni. Ennek a fordítók nem igazán szoktak örülni.
* például: source.c-nek szüksége van foo.h-ra és bar.h-ra, igen ám de a bar.h-nak is szüksége van a foo.h-ra
-
axioma
veterán
Na, megint jövök a kérdéseimmel
Csinálgatok most egy kis programot, amihez több, külső forrásból való kódot használok fel. Olvasgattam a hozzájuk tartozó header fájlokat, és feltűnt, hogy olyan definíciók vannak a fájlok elején, hogy(aes.h)
#ifndef AES_H
#define AES_H
...
#endif(sha256.h)
#ifndef SHA256_H
#define SHA256_H
...
#endifstb. Ezeknek pontosan mi a célja és értelme?
Konyhanyelven:
Hogy csak akkor legyen berakva, ha eddig nem volt. Mert hiaba ugyanaz, ha ketszer megjelenik pl. egy fg-fejlec, az nem derul ki ezen a szinten, hogy nem utkozest (kulonbozo megvalositast) jelent...
Effektive egy sajat "nemtobbszorozo" technika az, hogy minden egyes include-nal az adott file-hoz rendelt nevet define-oljak, illetve ha mashol meg az a define mar letezik, akkor elhiszik, hogy az include is megtortent. Termeszetesen ez csak akkor mukodik, ha szisztematikusan jol csinalod az egesz projekten vegig. -
alapz@j
tag
Na, megint jövök a kérdéseimmel
Csinálgatok most egy kis programot, amihez több, külső forrásból való kódot használok fel. Olvasgattam a hozzájuk tartozó header fájlokat, és feltűnt, hogy olyan definíciók vannak a fájlok elején, hogy(aes.h)
#ifndef AES_H
#define AES_H
...
#endif(sha256.h)
#ifndef SHA256_H
#define SHA256_H
...
#endifstb. Ezeknek pontosan mi a célja és értelme?
-
Anakin007
aktív tag
Köszönöm, a bináris működik, most is már azon a laptopon írok, amibe bios-t kellett újraírni, amihez kellett ez a progi

Igen, hiányzott a (asszem) libopenssl-dev csomag legutóbb, amiben az md5.h nevű file volt, amit hiányolt a gcc. Miután ezt is feltettem, már nem hiányolt semmit, csak kismillió hibát dobott és nem fordult le...
Mégegyszer köszönöm, lógok egy szivességgel. Tartsd evidenciában, főleg amikor majd meghal a notid

-
Jester01
veterán
Sziasztok!
Nem vagyok programozó, nem is értek hozzá, de úgy alakult, nagy szükségem lenne egy programra, amit viszont csak forrásban adtak meg tt.
Linux alatt nem fordul le, kismillió hibát jelez, nem tudtam kibogózni. win7-en a mingw-vel próbáltam, de annak is mindenféle header állományok hiányoznak, pl. wait.h, ptrace.h, stb. Valaki tudna esetleg segíteni a fordításban? V. más valamivel próbáljam? Annak is örülnék, ha valaki simán csak lefordítaná win-es binárisra, abszolút távol állnak tőlem ezek a dolgok, viszont kéne a program
A közzétevőnek már írtam, de még nem jött válasz.
Előre is kössz a bármit!
Linuxon ez nekem csont nélkül fordul. Talán valami nincs neked telepítve, látatlanban a libssl-dev. A binárist ide feltöltöttem, de ha nem egyeznek a lib verziók akkor lehet, hogy nálad nem fog működni. Linux, nem windows. Meg amúgy is vírus

-
Anakin007
aktív tag
Van egy debian és egy mint, mindkettő 32bites. Igazad lehet a winnel kapcsolatban, mert direkt hozzáférés kell a paralell porthoz, ami win7 alatt nem biztos, hogy megvan alapból...
-
Karma
félisten
Sziasztok!
Nem vagyok programozó, nem is értek hozzá, de úgy alakult, nagy szükségem lenne egy programra, amit viszont csak forrásban adtak meg tt.
Linux alatt nem fordul le, kismillió hibát jelez, nem tudtam kibogózni. win7-en a mingw-vel próbáltam, de annak is mindenféle header állományok hiányoznak, pl. wait.h, ptrace.h, stb. Valaki tudna esetleg segíteni a fordításban? V. más valamivel próbáljam? Annak is örülnék, ha valaki simán csak lefordítaná win-es binárisra, abszolút távol állnak tőlem ezek a dolgok, viszont kéne a program
A közzétevőnek már írtam, de még nem jött válasz.
Előre is kössz a bármit!
Milyen Linuxod van? A disztribúció, annak verziója és az is érdekelne, hogy 32 vagy 64 bites. Talán kevesebb macera oda lefordítani, mint Cygwinnel és utána a Windows más akadályaival verekedni.
-
Anakin007
aktív tag
Sziasztok!
Nem vagyok programozó, nem is értek hozzá, de úgy alakult, nagy szükségem lenne egy programra, amit viszont csak forrásban adtak meg tt.
Linux alatt nem fordul le, kismillió hibát jelez, nem tudtam kibogózni. win7-en a mingw-vel próbáltam, de annak is mindenféle header állományok hiányoznak, pl. wait.h, ptrace.h, stb. Valaki tudna esetleg segíteni a fordításban? V. más valamivel próbáljam? Annak is örülnék, ha valaki simán csak lefordítaná win-es binárisra, abszolút távol állnak tőlem ezek a dolgok, viszont kéne a program
A közzétevőnek már írtam, de még nem jött válasz.
Előre is kössz a bármit!
-
Karma
félisten
Sziasztok valaki tudna esetleg segíteni hogy ebben mi lehet a hiba mert nem tudok rájönni!!
#include<stdio.h>
typedef struct{
char nev[51];
double kapacitas;
}Pendrive;void beolvas(Pendrive *adat)
{
printf("Adja meg a nevet: ");
gets(adat->nev);
printf("Adja meg a kapacitast: ");
scanf("%f", adat->kapacitas);
}void nagyobb(Pendrive tomb[])
{
int i;for(i = 0; i < (strlen(tomb)-1); i++)
{
if(tomb.kapacitas > 2)printf("%s",tomb(i).nev);
printf("%i",tomb(i).kapacitas);
}}
int main(void)
{
Pendrive tomb[2];
int i;for(i = 0; i < 2; i++)
{beolvas(&tomb(i));
}
// nagyobb(tomb);
return 0;
}A hiba ott kezdődik, hogy nem használtad a Programkód gombot a forrás beszúrásakor, és így amellett, hogy nehezen olvasható, a [i]-kből mindenféle sima zárójel és dölt írás lett. Erre figyelj oda legközelebb.
Maga a kód rengeteg sebből vérzik, jelölöm amit ránézésre látok:
scanf("%f", &adat->kapacitas); -- mivel a double érték skalár, a scanf függvénynek a címét kell átadnod, ki kell rakni a & operátort hogy ne robbanjon.
for(i = 0; i < (strlen(tomb)-1); i++) ☠-- strlent nem szabad ilyen tömbre használni, csak és kizárólag nullterminált (azaz C) stringekre! A függvényedet úgy kéne módosítanod, hogy a darabszámot is átadd paraméterként.
printf("%i",tomb[i].kapacitas); -- ha egyszer double az érték, miért egészként akarod kiíratni?
De egyébként például a középsőt a fordító is mondja neked, hiszen lefordíthatatlan; miért nem nézed a hibákat?
Egy kicsit lemaradtam az írással

Új hozzászólás Aktív témák
-
4900 - 4801
6397 - 6001 6000 - 5901 5900 - 5801 5800 - 5701 5700 - 5601 5600 - 5501 5500 - 5401 5400 - 5301 5300 - 5201 5200 - 5101 5100 - 5001 5000 - 4901 4900 - 4801 4800 - 4701 4700 - 4601 4600 - 4501 4500 - 4401 4400 - 4301 4300 - 4201 4200 - 4101 4100 - 4001 4000 - 3901 3900 - 3801 3800 - 3701 3700 - 3601 3600 - 3501 3500 - 3401 3400 - 3301 3300 - 3201 3200 - 3101 3100 - 3001 3000 - 2901 2900 - 2801 2800 - 2701 2700 - 2601 2600 - 2501 2500 - 2401 2400 - 2301 2300 - 2201 2200 - 2101 2100 - 2001 2000 - 1
-
Fórumok
Mobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- OLED TV topic
- Apple MacBook
- Samsung Galaxy Z Fold7 - ezt vártuk, de…
- Konkrét moderációval kapcsolatos kérdések
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Xbox tulajok OFF topicja
- Elemlámpa, zseblámpa
- Konzol Screenshot
- Battlefield 6
- További aktív témák...
- 24 magos AMD Threadripper alapú munkára kiváló félgép, 128GB RAM-mal
- HP ZBook Fury 15 G7 i7-10850H 32GB 512GB SSD Quadro T2000 4GB FHD HUN bill, szép állapotban eladó
- Eladó MacBook Pro 16,1 2019 CTO
- új 0 km es garanciás lenovo loq rtx 5050 8gb
- Eladó teljesen újszerű karcmentes Samsung Galaxy Watch Ultra
- 27% - ÚJ Corsair VENGEANCE RGB 48GB (2x24GB) DDR5 6000MHz
- iPhone 15 Pro 128GB 88% (1év Garancia) - Kijelzőn pici folt!
- BESZÁMÍTÁS! Akár részletfizetés 0% THM ÚJ AMD RYZEN AM4 processzorok 3 év garanciával 27% áfaval
- Apple MacBook Air 13 M1 (2020) 8GB/256GB szép állapot
- Playstation / Nintendo / Xbox konzolok Okosítása és Szervizelése - PS4 "okosító" lemez kapható!
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest




![;]](http://cdn.rios.hu/dl/s/v1.gif)


.




