Fórum témák
» Több friss téma |
Nem tudok vele mit kezdeni, alább látható a kijelző programja.
Megköszönném, ha valaki tudna szolgálni valami épkézláb evilág magyarázattal.
A 'de' az szerintem az EEPROM-ba tud tenni adatot !
A hozzászólás módosítva: Márc 24, 2013
Gondolom 18-asról van szó... Itt a programmemória 2 byte-os --> word egységekből van kialakítva, ide nem tudsz úgy adatot tenni, hogy "elfelezed" a fizikai egységeket
!Steve
Elméletileg a poll megoldaná a dolgot, de a fordító azt mondjra rá, hogy undefined dentifier.. Ez most mi, benne van a doksiban, hogy mir ejó, hogy kell használni séa fordítónak fogalma sincs róla, hogy mi az... Valaki mondjon már valamit... Megőrjít ez a gagyi program.
A 'poll', azaz a 'polling' az azt jelenti, hogy folyamatosan lekérdezed, azaz nem megszakítással szolgálod ki, hanem "folyamatos figyeléssel"! Ez nagyon erőforrás pazarló, ritkán van ennyi felesleges idő egy komolyabb projektben
!Steve
Akkor ez nem az amit én akarok. Ettől még továbbra sem értem, hogy a frászba lehet az, hogy a fordítónak fogalma sincs róla, hogy mi az...
Ha meg van adva, hogy a slave cuccnak mi a címe, akkor miért reagál mindenre? Egyszerűen olyan ez a fordító, mintha a fele nem működne, vagy nem érdekelné, hogy mit ír bele az ember. Nem tudom mit kezdjek már vele, teljesen nonszensz ahogy viselkedik az egész. Gondoltam kipróbálom a mikroC-t erre még a szöveg hátterét sem állítja át a sötétzöld betű elég nehezen olvasható feket hátteren. Őrület.
A mikroC-t elég sokan használják ( én nem! ), így alapvető hibái nem hiszem, hogy lennének, legfeljebb még nem ismerted meg eléggé és nem jól közlöd vele, hogy " mit Te akarni"
!Steve
Bocs, a 'poll' nem 'pull' akart lenni, azaz felhúzó ellenállás ?!
Steve szerk.: ezt 'agressiv' kollégának szántam ! A hozzászólás módosítva: Márc 24, 2013
Nem. Az más.
A hozzászólás módosítva: Márc 24, 2013
Ez egy függvény, amit ha meghívsz, akkor a visszatérési érték alapján el tudod dönteni, hogy van-e beérkezett adatod, kell-e kiolvasni ( ha ritkán hívod meg, akkor "ráfutás" következhet be, ha sűrűn, akkor erőforrás pocsékolás az előzőekben leírtak szerint ) !
Steve
Koszi mindenkinek, de sajnos nem valt be egyik sem.
A de es a db tok ugyanazt csinalja. A de ugyanugy mukodik a kodteruleten is. Vesszovel a vegen sem javul. A dt pedig ugye a tablazat, tehat az RETLW-kkel pakolja tele minden masodik byteot. A rohadt c persze meg tudja csinalni siman... most azon filozom, hogy forditas kozben lehet-e procit valtani, mert hatha valami regi 16-os neveben jol csinalna...
Szia!
Sehogy... Használj páros számú byte megadást és írd át a kommentet...
Úgy néz ki, most jó. Külön veszem az adatot és két változóba tárolom a két számjegyhez, valószínűleg túl sokáig foglalta le a buszt, ha van ilyen egyáltalán, viszont kétszer kell elküldeni. Ami úgy van megoldva, hogy egyszer a hangerőszabályzónak megy az érték, egyszer pedig direkt a slave piknek címezve, de mind a kettőt veszi, mert nem különösebben érdekli, hogy kinek van címezve az adat...
És a küldések között egy ack-nyi késleltetést kellett berakni a meghajtó program részéről, különben megintcsak meghűlyül az egész. Ez mind teljesen véletlenül jött így össze és közben húsz évet öregedtem. Az ack-t szívesen fogadnám, mert küldi a hangerő IC, de ha beírom a programba szokásos undefined identitfier fogad, szóval több sebből vérzik ez az egész,de már nemérdekel, legalább azt csinálja, amit szerettem volna.Isten áldja a cél IC-ket.
De ha lehetne, kozel 500 sort nem szivesen irnek at. Csak KELL lennie valami megoldasnak.
A c siman megcsinalja. Egyebkent a forditoban lehet a hiba, mert megcsinaltam 10f206-ra, 16f628a-ra is es teljesen ugyanaz. Valamiert a sor vege miatt wordon kezd mindig. Nem lehet valami NOALIGN parametert megadni? (neten mar kerestem, de nem foglalkoznak a problemaval.
De mit értesz azon, hogy a 'C' simán megcsinálja
?! Valamit neki is tenni kell oda, mutasd már meg, hogy mit szeretnél ( és milyen PIC-en ?!) !
A 'c' alatt az mplab fejlesztorendszer C18-as reszet ertem.
Eredetileg egy c progit (USB HID joy kezeles) irok at assemblyre. Minimalisan ertem a c-t, valami strukturakat definial, de siman ott vannak egymas mogott a byteok a forditott hexben. Nagyon sok descriptortabla van igy odarakva es ezeket szeretnem az asm-be betenni. Fontos, hogy pl. egy cim vagy hossz ne egy masik felword utan jelenjen meg nekem a listaban. Egyszeruen nem tudom elkepzelni, hogy egy ilyen egyszeru problemara nincs megoldas... Regen, amikor meg nem hasznalt mindenki c-t, akkor is valahogyan ezt meg kellett oldani... Esetleg valami regebbi mpasm?
18-as PIC-nél egy-egy programmemória rekesz MINDIG páros számon kezdődik ( 2 byte-os egységeket alkotva!) ! Nem tudok úgy adatokat belerakni, hogy nem töltöm fel mind a két byte-ot, mindig lesz ott valami a másik byte-on is ( legfeljebb 0 ! ) ! Ezért nem értem, hogy mire mondod, hogy bezzeg a C meg tudja oldani és ezért kértem, hogy mutasd meg ( pl. kép! )!
HP41C kolléga is írta, hogy használj páros számú megadást, pl. a nem használt részre tegyél '0'-t ! Steve
Egy utolsó kérdés. Hogy tudnám azt megoldani, hogya számláló lemenjen nulláig, de ne is akadjon ki, mert akkor nagy dráma van. Most őgy áll a dolog, hogy csak -1dB-ig lehet szabályozni, nulláig nem. Hogy lehetne azt kimatekozni, hogy megálljon a nullánál?
Jelenlegi megoldás.
A hozzászólás módosítva: Márc 24, 2013
Igen, de ha továbbtekerem, akkor lemegy fogalmam sincs hova és meghűlyül a dolog. De most gondolkodok azon, hogy egyszerűen 1 és 80 között számoltatok és kijelzés, illetve adatküldés előtt kivonok a matekból egyet.
Ne bonyolodjunk bele ilyen melyen, nem errol van szo.
A lenyeg, hogy nem tudja folytatni egy UJ SOR eseten az adatmemoriat. Ez a bajom. Tehat nem tudom bytekent kezelni. Az ertheto, hogy egy program eseten mindig paros szamrol indul. A PICet belul LEHET bytekent kezelni, gondolj csak a TABLAT utasitasra, ami felvehet paratlan erteket is. A bajom a forditoval van, ami nem erti, hogy ha volt egy cim, ahol abbahagyta, akkor az uj pontot onnan folytassa a KOVETKEZO SORTOL. Miert tudja megtenni akkor, ha azt irom, hogy db 1,2,3,4,5,6,7,8 Ilyenkor gyonyoruen PONT azt csinalja, amit akarok, tehat akarhany bajt eseten folytatja a hi/low ordernek megfeleloen. De ahogy vege a sornak, kiegesziti wordre. Ez paratlan szamu byte eseten gond. A C forrast most nem tudom beidezni (cegnel van en meg otthon vagyok), de barmelyik USB-s forrast megnezed, a descriptor tablak igy vannak leirva.
És így jó is. Amikor számolja az értékeket a kijelzéshez kivonok belől egyet, majd utána hozzáadok egyet és meg is van.
Sziasztok.
PIC18F4550 CCSC hogyan lehet aktiválni a pullup funkciot az RB0-RB7-ig mert csak az RB2-RB7 -ig sikerült #define NO_ANALOGS //minden benemet digitális I/O set_tris_b(0b11111111);//minden bemenet port_b_pullups(0xff); //minden bemeneten aktiv a PULLUP és a RB0 és RB1 bemenet csak lebeg és nem akarja bekacsolni a felhuzó ellenállást.Sajnos az adatlapon már nincs a portokról részletes kapcsolási rajz mint a 16F-eknél és nem találom hogy melyik reget kellene még beállitani.Ezek még beleszolnak ha IN az I/O INT0 FLTO SDI SDA de nem látom hogy még mit kellene kikapcsolnom ![]() Elöre is köszi.
Akkor már a rotary érzékelésébe kellene belehekkerkedni a dolgot és nem merek belenyúlni. Nem lényeg, most jó így, felmegy 0-ig és 79-ig is, nincs vele gond.
Akkor így csináld !
Szia!
A C fordítóknak a minimális egysége egy C utasítás, deklaráció stb. Ezeket ez egységeket egyben kezeli. Ha egy rom területre szóló deklaráció páratlan számú byte -ot tartalmaz, a C által fordított kódban is kiegészítődik párosra egy 0 -val. Annál is inkább, mert a C is assembly -re fordít, csak nem látszik... Az assembly meg ilyen... Egy sor egy egység. Ha páratlan számú byte -ot írsz elő a program területre, kiegészíti párosra. Hiába erőlködsz... A következő sor lehetne akár utasítás is, ott nem lehet páratlan címmel kezdeni... A hozzászólás módosítva: Márc 24, 2013
Szerintem nézd meg az előző hozzászólásomat, létezik rá fordítói direktíva assemblerben ( én sem használtam még ,most kerestem rá a help-ben! ), úgy látom azt csinálja, amit akart a kolléga !
Steve szerk.: hiszen itt csak a fordítónak kell figyelembe venni, hogy mit akarok, nem kell megerőszakolni a hardware-t ! A hozzászólás módosítva: Márc 24, 2013
koszi, hogy fogalalkozol a bajommal, de
Egyik esetben adja, hogy tul hosszu utasitas es levagta a felesleges reszt (2 byteon tuli reszt) A masik esetben: Error[149] : Directive only allowed when generating an object file En egy lepesben szoktam letrehozni a HEX filet, nem hasznalok linkert. Kellene?
Mondjuk ettol feltem, mert ezzel nem lehet vitatkozni, nincs kibuvo alola:
hogy 'ez ilyen'. Eddig a pic programozot nekem kellett megirni, mert ugyanezzel szembesultem. Assemblert nem nagyon akarok irni...de ha kell, hat kell.
Jellemzően én is abszolut kódban programozok, de ( szerencsédre
? ) ezt most pont egy relokálhatóba írtam be és én úgy látom, hogy ott jól működik!Steve A hozzászólás módosítva: Márc 24, 2013
OK, errol irnal nekem bovebben?
Ahogy lattam, az org helyett kell code-ot irni. De ebbol hogyan lesz fizikai memoriacim? Tehat nekem az kellene, hogy az adattablak 0x0100, a kod pedig 0x0400 cimen kezdodik Illetoleg latom, ott a codepack vegen de akkor mitol relokalhato, ha megadod a cimet? A hozzászólás módosítva: Márc 24, 2013
|
Bejelentkezés
Hirdetés |




!
!
És a küldések között egy ack-nyi késleltetést kellett berakni a meghajtó program részéről, különben megintcsak meghűlyül az egész. Ez mind teljesen véletlenül jött így össze és közben húsz évet öregedtem. Az ack-t szívesen fogadnám, mert küldi a hangerő IC, de ha beírom a programba szokásos undefined identitfier fogad, szóval több sebből vérzik ez az egész,de már nemérdekel, legalább azt csinálja, amit szerettem volna.





