Fórum témák
» Több friss téma |
De addig blokkolva kellene várakozni, amíg a karakter elküldésre nem kerül a PIC felől. Ezt a TXIF flag pollozásával lehet megtenni az esetedben. Amikor a flag értéke "1", akkor lehet tölteni a TXREG-et, amíg "0", addig várakozni kell.
Vételnél az összes hibaregisztert kezelni kell.Ha kell újraküldetni .Ha a piccel adsz akkor célszerű valami kódolást ,esetleg paritás ellenőrzést alkalmazni,és ennek függvényében újra adatni.Magát a hibás vételt az alap kommunikációval nem tudod szerintem kiküszöbölni, mert abból ered hogy a küldött byte szintváltását érzékeli start/stop jelnek (mivel az eredeti megsemmisült) Így kedvezőtlen bitminta esetén elcsúszik a vétel.Az elcsúszás ellen esetleg úgy védekezhetsz, hogy egy byte időnél lényegesen többet várakoztatsz két küldés között.Így a zavar által elcsúszott vétel helye állhat,a következő start jelnek már nem zavar be a küldött karakter.
Szia!
Nézem a txif-et sőt néztem már txsta,trmt-t is de akkor is elrontja. Csak akkor válik be amit mondasz ha többet nem küldök, hanem végtelen ciklusba kerül. Hogyan nézzem hát hogy befejezte-e ha a két flag egyike sem hatja meg mert felülírja. A pickit uart-ja legallábis félreolvassa. És a pickit2 uartjában hogyan lehet beállítani a paritásbitet? Észrevettem ha több bájtot küldök mondjuk 1,2,3 formában nincsen közötte rossz info, tehát egy kommunikáció kezdetekor célszerű több bájtos azonosítóval kezdeni?
Szia! Már szinte kívülről tudom az adatlapot, annyit olvastam, nem is ez volt a gond, mert le van írva hogy 33pF kell, csak nekem nem volt itthon...
Idézet: Sehogy. „És a pickit2 uartjában hogyan lehet beállítani a paritásbitet?”
Köszi! Jó ez így is ha folyamatosan 0-val kezdem a küldést nem rontja el, megbízható. Nagyon tetszik ez a full duplex mód. Addig merészkedtem, hogy pic-ekből egy cpu struktúrát gondoltam ki. Amiből a kommunikáció egymással rendben is van. Az újdonság az sd kártya a számtalan külső adat tárolására és a hangmodul, ami ismeretlen. A soros kommunikáció nem terheli a pic-et, csak a feldolgozás, de amit nemtudok, hogy honnan szedi az órajelét?
Utána olvasni: A formátum kötött, a jelalak felismerésével állítják elő...
Sziasztok!
Lenne egy kérdésem. 16f628-al ismerkedek. Flowcode-ban szoftveres PWM-et meg tudtam oldani. Most assembly-ben kellene megoldanom, de ahhoz feltételre lenne szükségem ('X' nagyobb-e mind 'Y'). Ezt a feltétel hogyan tudom megvizsgálni?
movfw x
subwf y,w skpnz goto egyenlo skpnc goto nagyobb // y a nagyobb goto kisebb
Üdv !
Van egy simson motorom . Ehhez szeretnék építeni egy "motor pc". Egy pic re gondoltam , egy memória kártyára és pár érzékelőre. Ami mérné a fordulatszámot (a gyújtásnál kellene) , egy bicikli kilométer óra mágneses része mérné a sebességet és egy hő szenzor pl: ntc ellenállás.Valaki épített e már ilyet ? Hol találom mert nem nagyon találok róla semmit se. A pc részét meg oldanám mert visual basic nyelven kivalló programozó vagyok .
A Mikroelektronik PICflash2-vel tudok programozni,
de nem tudok debuggolni. Tudna-e valaki segíteni ambrus@osb.hu
Pl itt: Link
Én is gondolkodtam ilyesmit építeni, de azután rájöttem, hogy minek. Amit a Simsonnál az ember a fülével nem hall meg az nincs is.
Sziasztok!
Az EP jelzés mit jelent a mikrovezérlőknél? pl: PIC24EP? A "C" és "F" jelzés a memória típusára utal. De az EP leírását nem találom.
Szerintem itt már nem ilyen egyszerűek a betűjelzések. Adni kellett valami jelzést az új 24-es ill. 33-as családtagoknak.
F - kisfogyasztású, kislábszámú sorozat FJ - közepes teljesítményű, sok perifériával felszerelt sorozat (16 MIPS) HJ - nagy teljesítményű sorozat (H - High performance) (40 MIPS) EP - növelt teljesítményű sorozat (E - Enhanced performance) (60, 70 MIPS)
Köszönöm a válaszokat!
Így mindjárt világosabbak a kifejezések.
Sziasztok! Már jóideje bajlódom a bootloaderes megszakítás kezeléssel, de nem akar lefordulni, akármilyen formában próbálom beírni... Csatoltam egy kezdetleges teszt projektet, a simulátoros az működik helyesen, de a másik amiben a bootloaderes áthelyezések vannak, azt nem tudom összehozni Nagyon hálás lennék, ha tudna valaki segíteni! Üdv: Balage
Definiálni kell az USE_INTERRUPT szimbólumot és az MPLINK számára meg kell adni a /uHID_BOOTLOADER opciót! (Úgy látom, az utóbbi már benne van a projektedben)
Definiálni kell a hi_isr és lo_isr címkével kezdő interrupt kiszolgáló eljárásokat. A főprogramban inicializáláskor engedélyezni kell a megszakítást.
Szép napot!
Azt lcd-re van egy programom, amivel szerkeszthetem a karaktereket. Az lcd hd44780-as szabványú és 5x8-as. A szerkesztő program a szerkesztett szimbólumomból csinál is egy kódot, de az a következő pl 1f,00,00,00,00,00,00,00 , az lenne a kérdésem ezt az értéket hogyan kell felvenni??
Szia!
Idézet: „A táblázat első 16 kódja, 00000000-00001111, ($00-$0F) a CGRAM-ra hivatkozik. Ez a Character Generator Random Acces Memory rövidítése. Itt tarthatod a te egyéni karakterediet.” Ebből a cikkből De pontosabban a folytatásban le van írva a kérdésedre a válasz.
Pontositanek: a 0x00->0x07, azonos a 0x08->0x0F tartomannyal, tehat csak 8 karaktert lehet definialni. Mellesleg a MikroE MikroC, MikroPascal... csomagjaiban talahato LCD karakter szerkeszto utility.
Sziasztok!
Egyszer már írtam ezzel a problémával kapcsolatban a fórumba, és a kapott tanácsoknak megfelelően újra átnéztem az áramkörömet, de sajnos a probléma továbbra is fennáll. Egy 18f4550-tel kísérletezek, már megoldottam a szokásos "hello world" programot: ha USB-n jön egy karakter, azt kiírja egy LCD-re (amit két lábról vezérlek egy shift regiszterrel), és vissza is küldi a PCre. USB nélkül tudom ellenőrizni egy nyomógomb állapotát is a D porton. De ha a kettőt kombinálni próbálom, tehát ha van USB kapcsolat, akkor a nyomógombra kötött láb eléggé furcsán viselkedik. Ha multiméterrel megmérem, akkor azt látom hogy 0V-tól 5V-ig oda-vissza ingadozik a feszültség néhány másodperces periódusidővel. Így aztán eléggé használhatatlan az egész. A Vusb lábra egy WIMA kondit tettem, csak ilyet kaptam, ez lehet esetleg probléma? Csatolva beraktam a main függvényemet is. Nagyon hálás lennék ha valaki tudna segíteni ebben a dologban!
Üdv!
Már volt gondom a számított ugrással, kaptam rá megoldást, de szerintem valami nemjó. Ahogy használom az lcd-n háttérben fut halványan a multiplexálás, jólláthatóan.
Köszi. Ezt még fel kell dolgoznom. Nincs hozzá véletlenül leírás?
Megoldódott nem kapcsoltam ki/be az lcd-t és ahogyan újra ráírt azt láttam.
Bocsánat, nem voltam gépközelben... Egyébként Az a fő problémám, hogy formailag nem tudom hogy néz ki a USE_INTERRUPT definiálása... Magába a projektbe be van csatolva a PIC18f4550.lkr és a p18F4550.inc, ebben van olyan kódrészlet ami a belépési pontokat tartalmazza, de nem tudom hogyan kell definiálni Nincs esetleg egy kezdő teszt program valakinek? Amiben a megszakítás bootloader mellett működik? Üdv! Balage
Idézet: Pedig a p18_all.inc is tele van #define direktívákkal, onnan lehet puskázni. Nem tudom, hogy az assembler szereti-e az "üres" definíciót. Ha esetleg nem, akkor a„nem tudom hogy néz ki a USE_INTERRUPT definiálása...”
is megteszi. |
Bejelentkezés
Hirdetés |