Fórum témák
» Több friss téma |
Akkor értem, köszönöm és ezt hol írja? most lefuttattam én is szimulátorba, de nem tudom mit kezdjek azzal a kóddal jobb oldalt.
ui.: azt hiszem közben megtaláltam a RAM fülnél
A Registers ablakban számlálja a ciklusokat.
Hello!
Jártam már itt a kínommal nem tudna valaki egy tök egyszerű mondjuk 5-10 lépéses programocskát megosztani ami léptető motort vezérel?
Szerintem annál azért bonyolultabb lesz. Egy egyszerű példa itt található. Video is van hozzá.
Hát a negatív oldala a közös pont ha kell a típusát is le tudom írni,ja és rengeteg ilyen 8bites IC-m van itthon régi-régi computerek paneljaiból.És a napokban találtam egy 7446-os kijelzővezérlő IC-t amiről nemtudom hogy jó lenne-e valamire ebben a feladatkörben.
A probléma ott kezdődik, hogy a 7446 nyitott kollektoros, aktív lehúzással. Ez - szerintem - a közös anódú kijelzőkhöz alkalmas.
Sziasztok.
Hosszas kínlódás után, végre teljes sikert értem el az adxl312 accelero, i2c-n történő vezérlésében. A rövid történet: Miután már egy-két projektben sikerrel alkalmaztam az i2c kommunikációt, gondoltam az adxl312 vezérlése sem lesz túl bonyolult. Rosszul gondoltam. Először kimentek az adatok, de nem jött vissza semmi. Aztán már ki se ment semmi. Azután, végre sikerült kiküldeni egy regisztert, és vissza is jött a válasz, de csak egy. Ezután, már elborult az agyam, és összedobtam, egy az interneten található logikai analizátort, PIC-el, de nem volt itthon olyan PIC ami kellett bele, így hát, át kellett írnom a PIC programját egy másikra. (Még szerencse, hogy volt forráskód, és, hogy asm-ben volt.) Még a logikai analizátor használatát is meg kellett néznem, mert távol állt tőlem ez a műszer. Miután rájöttem, hogy mit jelent az a sok vonal a képernyőn, kezdett kitisztulni minden, és sikerült elküldeni a beállításokat, a gyorsulásmérőnek. Fogadni viszont még nem sikerült, illetve csak egyszer, de a FUG, és az adatlap hamar megmutatta a hibát. Így végül minden jó lett. Az utókor számára, meg, ha valakit érdekel, felrakom a működő forrást. (Az a 28 db rossz, úgyse érdekel senkit.) Plusz egy analizátor képet. U.i: Ismét sokat segített Icserny fórumtársunk honlapja, ezért csak ajánlani tudom mindenkinek! Lassan jobban ismerem, a PIC kommunikációkat, mint az MSP430-t.
Sziasztok!
Porton belül egyszerre lehet e több lábat felhúzni? Erre gondoltam: P1OUT = BIT3; P1OUT = BIT4; P1OUT = BIT5; Ha igen akkor hogyan, mert így nem működik nálam? Köszi!
IAR-ban, egy 16 bites változó értéke -1.
Ezt az értéket, (valtozo) elküldöm a PC-nek. A PC fogadja, de 65535-öt jelenít meg. Processing kód:
Hogyan magyarázzam meg neki, hogy az "rx_byte", -1 legyen, és ne 65535 ?
A PC-n Te írtad a programot? A signed változó az előjeles... ez azt jelenti, ha a legnagyobb helyiértéken '1' van, akkor negatív ! --> ezt kell nézned ilyenkor ki kell írnod egy mínusz jelet + a szám 2-es komplemensét!
Steve
Én írtam a PC-n futó programot, Processing-ben, de sajna a processing nem ismeri a "signed int" változót. Vagy valamit én csinálok rosszul, mert a "signed int"-re hibát ír:
Idézet: „processing.app.SketchException: unexpected token: signed”
Processing-ben az int változó 32 bites (4 bájt). A kapott adat (65535) "túl kicsi" ahhoz, hogy negatív számnak vegye. Bővebben: Link
Valóban. Valamiért elsiklottam felette.
Köszönöm.
Sziasztok!
Az Icserny cikkében szereplő "A főprogram felébresztése alvó állapotból ( 5_2. lista: A p1_3_wakeup.c program listája)" nálam úgy működik, ha P1.3-at nem a GND-re, hanem a VCC-re zárom. Tud valaki segíteni nekem, hogy miért van ez így? Az új LaunchPadot használom 2452-vel. Köszi!
itt található a válasz. (Az új kártyáról kihagyták a nyomógomb felhúzását.)
Megint sikerült összekeverjem magam, és nem találolm a kiutat.
Tehát, adott egy számláló, ami 2048-tól számol vissza, -2048-ig. Minden értéket, 2047-2046-2045.... elküldök a PC-nek, de mint már lentebb írtam, a -1-től baj van a megjelenítéssel, a PC oldalon. Miután Icserny fórumtársunk leírta, hogy miért, elkeztem dolgozni a megoldáson, de nem akar összejönni. Még mindíg ott tartok, hogy a 65535-ből, 32 bitben, hogyan csináljak -1-et. A biteltolás és összeadás ((0x7fff0000 + 0xffff) << 1= -2) nem vezetett a helyes útra, inkább csak jobban összezavart, és ebből nem tudok most kimászni. A Processing-ben a "char" változó 16 bites, de az karakteres megjelenítést eredményez. Tehát a kérdésem, az lenne, hogy a uC által elküldött -1-et, a Processing-ben hogy jelenítsem meg?>>
Inkább így próbáld: (0x7fff8000<<1 + 0xffff)
vagy egyszerűen: 0xffff0000 + 0xffff Lényeg az, hogy a 0xffff-et már ne léptesd balra, mert akkor a -1-et kettővel szorzod, s akkor tényleg -2 lesz belőle! De vissza lehet menni a számábrázolás értelmezéséhez is: Ha (a beolvasott) szam > 32767, akkor szam = szam - 65536 Ezt most hirtelen nem is tudom, hogy írják Processing-ül. Talán így?:
Köszönöm szépen.
Igazából, teljesen belekeveredtem, a uC, és a PC, illetve a Processing változótípusaiba, főleg az adtatok soros portól történő beolvasásánál. Idézet: „nem is tudom, hogy írják Processing-ül. Talán így?:” Igen, így. Így most "jól" jeleníti meg a mikrovezérlő által küldött adatokat. Köszi mégegyszer.
Sziasztok!
Egy led fényerejét szeretném két nyomógombbal szabályozni. Kedves Icserny cikkét tanulmányozva hosszú hónapok verejtékes munkájával jutottam el az alábbi kódig, ami nem tökéletes:
A -gombbal semmi gond, de ha a + gombot nyomva tartom a legerősebb fényerő után leugrik 0-ra. Én meg ugye azt szeretném, hogy 100%-on maradjon. Én továbbra is bízom a lelkes fórumtársak segítségében és várom, hogy elűzze valaki a gonosz sötétséget elmémből. Köszönöm!
Az i++ vagy i-- mellé be kellene tenni mégegy feltételt, hogy ne menjen se mínuszba, se 100 fölé. Például így:
A növelésből most (gondolom) úgy lesz nulla, hogy ha nem fogod meg 100-nál a változót, akkor előbb-utóbb túlcsordul.
Itt folytatom:
Szóval, ha az i 101 lesz, akkor a programod kilép a belső while ciklusból, és akkor 1-re állítod vissza i értékét. Az alábbi sorokat tehát ki kellene hagyni:
A kezdeti értéket csak egyszer, még a while(1) előtt kell beállítani!
Köszönöm, működik.
Csak az nem esett le tegnap. hogy hogyan és hol lehet megadni, hogy ne menjen 100 felé (és 1-nél is megálljon). Ez tényleg egyszerű volt! Köszi még egyszer! |
Bejelentkezés
Hirdetés |