Fórum témák
» Több friss téma |
Kedves fórum társak! Érdeklődnék, hogy tud-e valaki arról, hogy a mikroC for PIC programban lehetséges-e mondjuk a GLCD_Init függvény lefutásának módosítása? Értem ez alatt, pl. a várakozási idők változtatását. Történik ugyanis, hogy néha elindul az LCD-m, néha nem. Ha duplájára írom a programban a CPU sebességet, mint a valós, akkor fele olyan gyorsan "csinál" mindent a PIC, viszont minden esetben elindul az lcd. Ebből gondolom, valami késleltetési idő nem elég neki... Valaki, valami okosat? Az egész init függvényt nem szeretném újból írni.
Sziasztok
Szeretnék egyilyet PIC32 vagy 33 ról működtetni. SSD1289 drivere van 40 lábú csatlakozóval. Ezt a demót akarom kezdetnek kipróbálásra: C:\microchip_solutions_v2013-02-15\Graphics\Object Layer Hol lehet megnézni hogy a panelt milyen lábkiosztással kell a PIC-re kötni? Vagy azt nekem kell meghatározni valahol? Köszi Szabolcs
Szia!
Legjobb emlékeim szerint ezekben az inicializáló részekben fix késleltetés van. Ha növeled a CPU időt, akkor is ugyanannyi lesz a késleltetés. Pont két hete vettem át én is a MicroC egyik lefordított asm-jéből az LCD init, mert a sajátom nem indult 16MHz-en csak 4-en.
Szerintem a panel csatlakozóira rá van írva mit kell oda kötni.
Ezeknél érdemes kihasználni a pic32 PMP tudását a TFT összekötésénél. És a Mikroelektronika C-nek jó a támogatása.
Ha jól értem ennek a demónak drivere használja a PMP-t.
A vezérlő biteket és a touch ic-t melyik PIC lábakon működteti , azt nem találom sehol.
Néha vannak olyan szőnyeg alá bújt sztorik, amik nem kaptak figyelmet, mert soha senki sem akadt még beléjük, vagy az az 1-2 ember, aki mégis beleakadt, sosem publikálta. Ja, egy kicsit dühítő tud lenni, amikor az alapokban is hiba van.
Mondjuk a verziókról megjegyezném, hogy már a 2014-es is 2 éves, mi a fenének használtál te egy 2010-es (6 éves) verziót ahelyett?
A példa projecteket általában példa panelekhez készítik el. Be is kell állítanod a hardwareprofile-ban, hogy mid van. A példapanelek kapcsolása rajza nyilvános, a termék doksijában megtalálod. Ha saját magad kreáltál kapcsolást a projecthez azelőtt, hogy egy példából előbb részletesen megértetted volna, mi hogyan működik, akkor persze alaposan fejest ugrottál a mélybe, elsőre olyat tenni nem javaslom. Ha mégis ragaszkodsz hozzá, kotorj fel egy próbapanel leírást, amit ahhoz a projecthez javasol a hardwareprofile, nézd meg ott a kapcsolási rajzot, és ami eltérésed neked van, kotorj bele az #if - #define hegyekbe, hol kell átállítanod lábakat. Esetleg a forráskódban fixen írd át a #define helyett adott lábakat használni.
Most kipróbáltam bemenetként is, de semmi. Ezután még azt is megpróbáltam hogy nyomok egy törlést és utána újraírom a progit. Beimportálnám a hexet és amit nyomom az írást kiírja hogy no device detected. Azt hittem már itt a vége, de ha simán átírtam pár értéket az üres hexbe akkor azt meg tudta írni, és végül 6-7-re sikerült ráírnia programot. Szóval nagyon érdekes. Nem mondom, hogy sokat használtam még a pickit2 klónt, de a kis piceknél eddig nem volt bajom vele. Lehet kifogtam mégis csak egy hibás picet? Most a D portot leszámítva működik.
Miközben csináltad azt az átforrasztgatást, nem hagytad véletlenül tápfesz alatt azt a picet, és mondjuk folydogált az ónpaca közvetlenül tápfesz ellenirányban egy D-portos kimenettel? Mert ha volt valami olyasmi, bizony az rendesen meg tudja rongálni a pic-et.
Nem nem volt tápfesz a picen, főleg mivel a forrasztó egy másik helyiségben van. Szóval nem tudom mi okozta.
Csak 4 led van a D porton, 2 tranzisztoros kimenet és 2 csak "lóg". A tranzisztorok is jók, de 1k bázisellenállással van összekötve a pic lábával, szóval sehogy sem lehet rövidzárat okozni (csak szán szándékkal). A hozzászólás módosítva: Ápr 16, 2016
Sziasztok.
Szeretnék egy nyomógombos érzékelést a következő C programmal. De hiába nyomom a gombot sehogyan sem akar működni a dolog. char i; void main() { TRISA = 0b11111111; TRISD = 0; PORTD = 0; while(1) { if( PORTA.F0 == 0 ) PORTD = 0b00000001; for(i=0;i<7;i=I+1) { PORTD = PORTD << 1; delay_ms(250); } for(i=0;i<7;i=I+1) { PORTD = PORTD >> 1; delay_ms(250); } } } A PIC egy 16F877A ELsősorban gombokat és kapcsolókat szeretnék vele detektálni. A másik kérdésem: Hogyan lehet a pic-ekkel szöveges adatokat küldeni? egy arduino uno - val szeretném ezeket majd dekódolni. Köszönök minden építő jellegű hsz-t. Valamint, ha nem az analóg lábra kötöm a gombot, hogyan tudom a többi lábon ugyanúgy használni?
Ilyet, hogy PORTA.F0 soha nem láttam még, én a PORTAbits.RA0 (xc8) ismerem, de szerintem, már nagyon sokszor elmondták, hogy analog-ra álított portot elég nehéz digitálisan olvasni.
Az arduinohoz kötheted UART-al(szerintem a legegyszerűbb), SPI-vel és i2c-vel is. És az utlosó kérdést nem teljesen értem, hogy mit is akarsz pontosan.
Rákeresve a PORTA.F0-ra ez mikroC-ben íródott nem MPLAB-ban.
csaba8702: A TRISx regiszterrel állítod be, hogy a PIC lába kimenetként(0) vagy bemenetként(1) működjön. Ha pl. a D portra akarod kötni a nyomógombot, akkor TRISD = 0b11111111; utasítást kell megadnod.
Sziasztok!
Van egy PICKIT3-om és szeretnék programozni egy 12F1572-t, de nem tudom összehozni a kettőt. "No device"-t ír ki, nem ismeri fel a PIC-et. (már azt hittem tönkrement, de egy 16F886-t fölismert elsőre) A 12F1572 adatlapján az szerepel, hogy pickit3 támogatja, ugyanakkor kézi kiválasztásnál nem találok egyetlen 12F-et se, ami 4 szemjegyű. Van valami titka ennek, hogy hogyan kell használni? Idézet: „Valamint, ha nem az analóg lábra kötöm a gombot, hogyan tudom a többi lábon ugyanúgy használni?” Ha az adc ki van kapcsolva, a port lábak digitális üzemben vannak - ha csak egyéb perifériát be nem kapcsolsz rajtuk. Jellemzően az adc induláskor be van kapcsolva, ha nem kell, azt ki szoktuk kapcsolni (fentebb már jelezték neked). Watchdog ahol van, ha nem kell, csak hagyd default értékeken a config biteket, és nem zavar be. Jtag ahol van, ha nem kell, config bitekben explicite kapcsold ki. Bármilyen pic is legyen (egészen 32mz-ig a teljes 8-16-32 bites családok sorban végig), ha csak digitális "állapotgépnek" kell a pic, akkor azokra figyelj oda, a többivel nem lesz bajod, mert config default / cold start alapján semmi más nem szokott aktív lenni. De persze biztos ami biztos alapon az adatlapot mindig elejétől a végéig elolvasni a meglepetések elkerülése végett. Az alkalmazásodban egyébként van egy lehetséges logikai bukfenc. Ha a 0. biten egyszer is nullát talált a program, beállítja a D porton a legalsó bitet egyre, és a továbbiakban már mindegy lesz a 0. bit értéke, mert a for ciklusok már folyamat léptetgetni fogják azt a bitet minden mástól függetlenül is. A program abban a formában inkább csak arra jó, hogy ellenállással magasba húzott lábra ellenőrizni tudd, hogy a pic indulása után volt-e egy gnd felé kötött nyomógom lenyomva éppen akkor, amikor a főciklus odaér (minden 4 másodpercben 1x nézi meg a főciklus). Ugye biztosan az volt a szándék? Idézet: „for(i=0;i<7;i=I+1)” Fentebb vastagítva és aláhúzva két külön változó, amit a ciklus kiértékelési részében hagytál mindkét helyen. Ha nem is szól érte a fordító, mert nem case szenzitív, akkor is egy kicsit problémás. Egyszer csak elköveted a trehányságot mondjuk define-okban is egy sok1000 soros config-kulimász kellős közepén, és majd keresheted a tűt a szénakazalban. Jobb az ilyesmiről még ideje korán leszokni. A hozzászólás módosítva: Ápr 18, 2016
Szia!
Nem tudom, melyik fejlesztő eszközt használod, de próbálj úgy rákeresni, hogy 12LF1572. A PIC katalógusban ilyet nem is találni, viszont az MPLAB X-ben csak így találtam meg. Lehet valami elírás van az adatbázisban.
Üdv!
Én csak az IPE-t használom az MPLAB X-ből, de abban benne van. Legalábbis a legújabban.
Köszönöm, megnézem.
Sajnos nekem az MPLAB sokadik próbálkozásra sem működik a PICKIT-tel együtt (egyik programozó se). Így megírom, lefordítom, és a PickIT saját égetőjével égetem be a PIC-be, mert másként nem megy (Flowcode se ismeri fel, C és BAsic programozót is próbáltam, az se) Kínai a PICKIT, lehet ez a gond. De már megszoktam, nincs vele baj, kivéve amikor az égető programban nem találom a kérdéses PIC-ek (Mint most) KÖszi a tippeket!
Mivel ez a PICkit 3 v3 program már archív státuszban, ezért nem ismer mindent. Attól, hogy a programozó kínai, még mennie kellene. Főleg, hogy ezzel a programmal megy. Nekem is volt bajom, a korábbi MPLAB X IPE-vel, de úgy látszik most jó lett. MCLR tiltott 16F819-et egyszer programozta, többször nem. PICkit 3 v3-al jó volt. Pedig nekem eredeti PK3 programozóm van.
Telepítsd fel a JAVA legújabb verzióját, ha 64-bites Windows alatt vagy, akkor a 32-bites változatot is. Majd próbáld ki a legújabb MPLAB X-et. Esetleg össze is hasonlíthatod az eredeti PK3-al a tiedet, kapcsolási rajz megtalálható. De hardverben sok eltérést nem tudnak bele rakni szerintem. Ja és ne feledd! Mielőtt kipróbálod: PICkit 3 Programmer-ben Tools->Revert to MPLAB Mode A hozzászólás módosítva: Ápr 18, 2016
Sziasztok!
Azt szeretném megkérdezni, hogy miért nem válaszol a szenzorom? MMA8451Q gyorsulás szenzorom van, és a 9. bitnél nem küldi vissza az ACK-t, és FF-et olvasok ki egyfolytában. Mi lehet a baj. MMA8451Q pdf
A hozzászólás módosítva: Ápr 18, 2016
Hová van kötve az SA0 láb? Az adatlap szerint SA0 = 1 esetén nem 0x1C, hanem 0x1D az I2C cím (azaz 0x38 helyett 0x3A az első kiküldendő bájt).
Sziasztok.
Van egy projekt, aminek a kódja Microchip XC8 - al íródott. Valaki tudna nekem generálni belőle beégethető .hex-et? Előre is nagyon köszönöm.
Ime... Annyit még, hogy ennek a PIC -nek PORTB portja van és nincs PORTC...
Szia!
Köszi a segitséget, földre van kötve, kiprobáltam, úgy is de ugyanez a helyzet. A hozzászólás módosítva: Ápr 18, 2016
Akkor ellenőrizd a kapcsolás többi részét is! ( 3 GND, 2 VDD/VDDIO, 1 BYP lábak)
Nálam a FRDM-KL25Z kártyán a csatolt ábra szerinti a bekötés (SA0 felhúzásra van állítva, ezért 0x1D a 7 bites cím, ami nálad a lehúzás miatt 0x1C). Persze, én mbed környezetben használom, ezért a programodhoz nem tudok hozzászólni.
Köszönöm szépen, a kapcsolásom elvileg jó, mert egyik ismerősömnek megy a kapcsolássommal, valószínű az a baj, lehet nem érintkezik vmilyek láb rendesen a nyákhoz.
Idézet: Fölöttébb kínos!„...lehet nem érintkezik vmilyek láb rendesen a nyákhoz.” A rajzodról nem derül ki, de ugye megvannak a felhúzások az I2C buszon?
Ha nincs felhúzva olvashat vissza FF-et az I2C?
nem kötekedés ne érts félre csak kíváncsi vagyok
Igen, a felhúzó ellenállások megvannak. Ha az eszköz nem érintkezik rendesen, olvashat FF-et?
A hozzászólás módosítva: Ápr 18, 2016
|
Bejelentkezés
Hirdetés |