Fórum témák
» Több friss téma |
low - fogalmam sincs, talan kisfesz programozasnal a PGM labra kell kotni
pgc - programozo orajel pgd - programozo soros adat gnd - negativ testpont, minusz polus, 'fold' pont vcc - tapfeszultseg vpp - programozo feszultseg Ezeket a PIC megfelelo labaira kell kotni. Adatlapjaban megtalalod, hogy mely labak ezek. A hozzászólás módosítva: Okt 2, 2012
Jó napot!
Eljutotam addig, hogy a vevő pic az lcd- n kívül kommunikál egy másik piccel is ugyanazokon a lábakon és hasonló módon mint az lcd vel. Cserélgeti a felső és alsó biteket. Így teljesen függetlenítettem (egyelőre) a szervót. Azt vettem észre, hogy a szervó is belezavar a vételbe, 2 féleképpen is. Először is ránt a tápon, és szerintem ezzel még zajokat is kelt. Ez még akkor is észrevehető ha teljesen függetlenítem a 2 egységet. De a legfontosabb, a vétel, szerintem pont az elfogadhatóság küszöbén áll, azaz pont elfogadhatatlan a reagálási sebbessége. Elvárom, hogy ugyanúgy funkcionáljon mintha közvetlen rákötött a/d potival. Na most ez a rádió miatt van szerintem, ha lassan húzom akkor jó de ha gyorsan változtatok akkor azért észreveszem a darabosságát, ami egyáltalán nem tetszik. Ez így nem lesz összerakva. Utána néztem a foxi63 által ajánlott rádiónak. Tetszetős, de elég komolynak látszik még bekapcsolni is. De ez lehet az út, ahogy nézem 115kbps. Ha utána számolok akkor a jelenlegi csodám az 1kbps-el operál.
Szia!
csak követni kell az adatlap szerinti utasításokat, eleve van példaprogram PIC re is, de tettem fel oda működő progit adásra és vételre is. Ha a PIC 5V-os akkor is megoldható könnyen a szintillesztés...
Hello!
Az lenne a kérdésem, hogy van egy pic18f6722-es picem, és az RE lábakra, pontosabban az RE0-RE7-ig nyomógombokat szeretnék bekötni. Ezek a nyomógombok idézhetnek elő különböző megszakításokat, (menürendszert kezelnének a gombok) mert ahogy olvasgattam, úgy az RB0, RB4:7 lábak vannak csak erre alkalmasak. Azt tudom hogy az idézi elő a megszakítást, hogy lehúzzuk a lábat, (tehát egy láb állapotának a változása váltja ki a megszakítást) de hogy ez pl az RE lábakon is működik, azt nem tudom, és nagyon nem is derül ki sehonnan. Idézet: Azert az adatlapbol az elso par oldalon kiderul. Az 1-3 tabla peldaul roviden leirja a labak fo funkcioit, es onnan rogvest kiderul melyik lab mire hasznalhato (DS39646c.pdf 15. oldal). „az RE lábakon is működik, azt nem tudom, és nagyon nem is derül ki sehonnan.”
Sziasztok!
Lenne egy kérdésem. Ha van egy Timer1-es megszakításom és egy RB Port Change megszakításom, akkor a Timer1 megszakításban futó algoritmus futása megtud szakadni ha az RB porton megváltozik az állapot, vagy mindenképpen lefut a Timer1-es rész?
Sejtettem.
Akkor az lesz, hogy az alacsonyabb szintű, de hosszabb futási idejű Timer1 megszakítást kiveszem az interrupt eljárásból és beteszem a főprogram végtelen ciklus magjába. Köszöntem a választ.
Szia!
Ha nyomógombokat akarsz figyelni, bőven elég, ha időközönként beolvasod az adott portot(1/20 sec), ehhez igazán nem kell megszakítás.
Sziasztok!
Ha a Portb-re írok és nekem csak a felső bitek kellenek letakarom az alsókat. pl
és mondjuk előtte kapcsolgatom, a Portb,1-et az hogyan lehet hatással az előbbi műveletre? Elírtam a Portb,2-őt! kapcsolgatom Ja és a CCP1 is ? A hozzászólás módosítva: Okt 3, 2012
Üdv! Most kezdem tanulni a PIC programozást, építettem egy PICKit2 égetőt és MPLAB-ba írtam egy programot, a fordítás sikeresen megtörténik ám nem tudom beleégetni a PIC-be. Ezt a hibát kapom:
Mit csinálok rosszul, vagy mi lehet a gond?
Ha "letakarod" az alsó biteket és movwf utasítással kiírod a PORTB regiszterbe, akkor gyakorlatilag kinullázod az alsó biteket. Biztos, hogy ezt akarod?
Ha nem ezt akarod, akkor a reg ^= ((reg^val) & mask) művelet assembly megfelelőjét kellene kitalálni. A hozzászólás módosítva: Okt 3, 2012
A Probléma érdekes. A szervónak küldöm a 8 bitet úgy hogy az rb0-rb3- ra a másik pic rb4-rb7-el cserélgetve. a szervó stabilan megy, de ha rángatom a gázkart ami 8 bit-tel tölti a CCPR1L regiszter akkor nagyon kicsit inog. Biztos nem az adás hibája , mert ha kikapcsolom a pwm modult nemcsinálja. Ugyanakkor ha a Küldő pic Rb,2-es lábát kapcsolgatom a távirányítóval szintén belejátszik, de épphogy. A jelenség az, hogy ha lenyomom kb egy fél millimétert balra majd ha felengedem visszamozdul? Ez hogyan lehetságes? Az alsó bitek nincsenek használva a küldéshez.
Ne haragudj, de én ezt nem tudom követni, meg nem is akarok belemenni a kérdés szempontjából lényegtelen részletekbe. A kérdésem arra vonatkozott, hogy mi legyen a B port alsó 4 bitjével? Van rákötve valami? Gondolom, valami célod csak volt a maszkolással...
Megpróbálom. van a küldő pic az Rb 4-7 lábait használja az adatküldéshez. az Rb0-án megszakítás van, az Rb1-en egy led, az Rb2 pwm módban van használva, az Rb3 meg a motor meghajtó ic-t engedélyezi. Ezért van takarva az alsó rész, ami amúgy felesleges is mert semmilyen kapcsolatban nincsen az adaküldés szempontjából az felső bitekkel, ennek ellenére biztosan közrejátszik mert ha bekapcsolom a ledet az alsó porton akkor félmillimétert kimozdul, ugyanez pwm modul kitöltésének változtatásával is jelentkezik. Tehát mintha az alsó bitek befolyásolnák a felsőket...
A hozzászólás módosítva: Okt 3, 2012
Ha csak a felső bitekre akarsz adatot kiírni, akkor szerintem nem úgy kellene csinálni, ahogy írtad, hanem úgy, ahogy mutattam. Az assembly változat talán ez lehet:
Előre is bocs, ha elrontottam valamit (nem használok PIC16-ot)! Valószínűleg meg kellen nézni az alsó biteket matató kódodat is, mert abban is lehet gixer.
Próbálkozom, gyakorlatilag ez a bajom már csak. Áldoztam a hatótávból, felgyorsítottam az átvitelt, így hűen követi az analog kar mozgását. Erre meg alszom egyet. ami érdekelne megint teljesen általános. 10f200 ban használtam sleep módot. Ott akármelyik láb változás felébresztette. Pl egy 16f887-es miért csak megszakításra ébred fel. Nem lehet bármelyik lábára állítani a változásra ébredést?
PIC18F en szeretnék Remappable lábakat használni. Ehhez a PPSCON, IOLOCK bitet kell először feloldani.
Első kérdésem az, hogy a IOLOCK bit reset után 0 értékű, ebben az állapotban I/O lock not active, pin configurations can be changed. Tehát hol a védelem? Második kérdés, hogy doksi javaslata szerint az alábbi kódban is elhelyezett seqvencia kell az IOLOCK bit biztonsági okokból történő oldásához. (Láthatóan itt is BCF el nullázza először IOLOCK bitet (7. sor), mintha eleve nem ott lenne...) Az EECON2 access elérésű, és movwf EECON2 sorokban alapban oda is címzünk, így ez rendben. De a PPSCON regiszter a Bank 14 ben van, a bcf PPSCON, IOLOCK esetén hol látszik, hogy oda címezünk? Én így csinálnám: bcf PPSCON, IOLOCK,1. Most akkor hol az igazság? íme a doksi egy példakódja:
A kódot futtatva simulátoron nem látszik EECON2 regiszterben W értéke. Miért? Ráadásul úgy lockolja IOLOCK -ot (19. sor), hogy nem futtatja újra a kód seqvenciát. Megteheti? Más példából és a szöveg alapján úgy értettem nem. És még egy kérdés: Config Word ben lévő IOL1WAY bit arra való, hogy az IOLOCK -ot egyszer vagy bármennyiszer lehessen módosítani? A hozzászólás módosítva: Okt 3, 2012
Hello!
Timer1 modullal szeretnék megszakítást órához. Valamiért nem szakít meg a program, és nem tudom hol a hiba. 32kHz-s kristályt használok. A két mellékelt file a main.c és a configurációs beállításokat tartalmazó header.
Tiszteletem!
Most kóstolgatom a pic programozást, és az lenne a kérdésem hogyha meghívom a CALL utasítással egy programrészt,(jelen esetben ez a késleltetés) akkor ha én megnyomok egy gombot, hogyan tudom az időt ebben a programrészben módosítani. például: megnyomok egy gombot és csökkenti a kapcsolás idejét(léptetőmotor vezérlőt építek) egyébként négy port a kimenet, eddig három a bemenet de ez majd nő ötre mert a balra,jobbra,stop gombok mellé még kell így majd a sebesség növelés, és a sebesség csökkentés. a programot pic simulator ide-evű programmal írom, eddig megfelelően működik a program, viszont most elakadtam A mikrovezérlő PIC16F84 Ha valaki tudna segíteni, azt nagyon megköszönném!
Szia!
Meglehetősen kesze-kusza a programod, de ha a késleltetés idejét letárolod egy változóban (legyen xy), akkor amikor meghívod a késleltető szubrutint beolvassa a tárolt számot, és az szerint számol. Ha változtatod xy-t akkor annak megfelelő ideig számol majd. A segédprogramot nevezd át : delay16.exe -re A hozzászólás módosítva: Okt 4, 2012
Nagyon szépen köszönöm!
keszekusza,de örülök hogy működik Tekintve hogy ez az első programom.
Szia!
Programrészlet? A szervonak küldött 8 bit hogyan áll fel ? nyilván kiküldöd a felső 4 bitet, ezután az alsót vagy fordítva.... Biztosan benne marad valahogy a b port alsó 4 bitje. Különben tényleg nem szólhat bele.
Sziasztok!
Nemrég kezdtem el PIC-ekkel foglalkozni, szóval még igencsak új vagyok a témában. Építettem egy tesztkályha-vezérlésre szolgáló panelt, amit majd egyszer, ha valaha is eljutok arra a szintre, akkor jó volna felprogramozni, de most első nekifutásra csak a kijelzőjébe szeretnék életet lehelni (Raystar1602b 2x16 LCD). Fejlesztői környezetként MikroC-t használok a kifinomult helpje miatt. Az itt található LCD példaprogram legelejét az én lábkiosztásom szerint átírtam. Buildelés után nem volt hiba. Az első akadályba akkor ütköztem, amikor a MikroC égetőjénél nem tudtam kipipálni, hogy a programozón keresztül kapja a PIC a 3.3V-ot. Hibaüzenetként mindig azt írta ki, hogy: "Connected developmet tool does not support this option." Ezután lementettem a HEX file-t, PICkit2-vel importáltam, majd sikeresen fel is töltöttem a programot a PIC-re. Bekapcsolás után viszont a kijelzőn csak a kis fekete téglalapocskák voltak, semmi más.. Az első kérdésem arra vonatkozna, hogy a mikroC-ben miért jelent meg a hibaüzenet, illetve, hogy hogyan lehet ott beállítani a 3.3V-os feszt. A másik és igazából fő kérdésem pedig magával a kudarccal kapcsolatos, hogy volna-e valakinek ötlete, hogy miért nem jelenített meg semmit sem a kijelző. (Amiről tudok, azt próbáltam előzetesen beállítani: MikroC projectwizard- jában a PIC fajtáját, az osc.-t, default gombocskára rányomtam, WDT-disable, OSC-HS, az új verzióban LVP-t nem találtam; A pickit 2-ben kiválasztottam hogy PIC18fxxj60-as család, VDD-t pedig 3.3V-ra állítottam. ) Mellékelem a használt kódot, és a kapcsolási rajzot. Maga a kód nem túl bonyolult, de lehet, hogy valami triviális dolgot nem állítottam be, vagy nem jól állítottam be, nem tudom.. de elég tanácstalan vagyok, mivel a program példaprogram, amiben nem volt hiba, maga az égetés is sikerült.. nem tudom, lehet hogy hardwares a probléma, és a bekötéssel van a baj? Ennek a kiderítésében szeretnék egy kis segítséget kérni, amit előre is köszönök szépen!
Szia!
Az első kérdésedre a válsz az hogy, a mikroC nem kezeli a PICkit2 programozót. Ezért a mikroC -ben megírt és lefordított programot csak a PICkit2 programjával tudod beprogramozni a PIC-be. A második válasz az hogy az LCD "R/W" vonalát nem a példa kapcsolás és program szerint kötötted be ( R/W --> GND). Te össze kötötted a PIC RB3 lábával. Így két lehetőséged van: - elvágod az összekötést és az R/W lábat GND-re kötöd. - a programodba az RB3 lábat kimenetnek és 0 -nak állítod be.
Köszönöm szépen a gyors választ!
Való igaz, most már látom a hibát, amit írtál. A kapcsolást nem eszerint a példa szerint csináltam, ezt csak később találtam, és valahogyan elkerülte a figyelmemet ez az eltérés. Köszönöm, hogy felhívtad rá a figyelmem! Sajnos most nincs lehetőségem forrasztani, szóval marad a 2. javaslatod. Viszont pont azért ebbe a fórumba írtam, mert kezdőként még ilyen alap dolgokban is bizonytalan vagyok. Próbáltam utánanézni, hogy mit és hova kellene írnom, de sajnos nem igazán tudok még kiigazodni az olvasottakon. (• TRISx: Adatáramlási irány regiszter • PORTx: I/O Port regiszter • LATx: I/O Latch (adat retesz) regiszter Ezek közül kell esetleg valamelyiket használnom majd?) Ezért szeretnék ebben is egy kis segítséget kérni, hogy konkrétan a javaslatodat hogyan kell megvalósítani, mit és hova kell beírnom? A segítséget utólag, és előre is köszönöm szépen! A hozzászólás módosítva: Okt 5, 2012
Eloszor is a LCD nem hasznalt labait le kell kotni GND-re. Utana meg kell nezni, hogy lehet-e a kontrasztot allitani. Ezek utan talan meg kellene nezni szimulatorban, a labak mukodeset, es az idoziteseket. Sajnos a MikroC nem fut MPLAB alatt (es ez csak az egyik hibaja) igy nem tudod a MPSIM szimulatort hasznalni. Sajnos a fordito libjei nem mindig allnak a helyzet magaslatan. Vannak azert mas C nyelvjarasok is amiknek jo a helpje, es fut MPLAB alatt. Pl a CCS C.
Igen, igazad van, ne haragudj kérlek! Az én figyelmetlenségi hibám, hogy a kapcsolásban elfelejtettem berajzolni a nem használt lábak földre kötését. A panelen viszont ez megtörtént.
A problémát valószínűleg az okozta, amire Mikro felhívta a figyelmem, hogy a helpben, a rajzon amihez a program készült az R/W láb földre van kötve, nekem pedig a PIC RB3-as lábához. Erre írta Ő megoldásként, hogy ezt a lábat kimenetnek és nullának kell állítanom. De sajnos nem tudom, hogy ezt hogyan kell megtenni. Ezért ha még ebben tudnál segíteni, akkor azt nagyon szépen megköszönném! (A kontrasztot már beállítottam)
TRISB.B3 = 0;
LATB.B3 = 0; Ezek az adott láb beállítasai, de 18f67j60 adatlapján meg kell nézni hogy az RB3 láb lehet e adc vagy egyéb periféria mert akkor azt előbb le kel tiltani a megfelelő regiszter beállításával. A hozzászólás módosítva: Okt 5, 2012
Jó reggelt!
A kérdésem már feltettem, hogy egy 18f2550 usb része tönkre mehet e egy d+ d+ cserétől? A gépem eládásra itéltetett, ezért jó lenne életet lehelni belé. Már találtam egy remek cél ic-t Usb to Parell port-ra a Hq-ban kapható ft245rq. Visszatérve, a múltkori óta kipróbáltam a Trisc4,5 bementeként konfigurálható és működik is egy egyszerű programmal. De ha feltöltöm a Pickit2 könyvtárában a Pickit2 hex file-t nem ismeri fel, hogy lenne ott valami. Először anno mikor próbálgattam úgyemlékszem, hogy ezzel a kóddal azonnal felismerte és egyéb egyszerű voltmérő stb, amik ugyan 4Mhz-en mentek jó volt. Nemtudom mi mehetett használaton kívűl tönkre, vagy milyen belső beállítást lehetett kitörölni véletlen, vagy a Vusb lábbal lehet valami. Azt kipróbálni nemtudom.Szóval gőzöm sincsen. |
Bejelentkezés
Hirdetés |