Fórum témák
» Több friss téma |
Eddig én is eljutottam, csak jlenleg a tudásom kevés ahhoz, hogy ezt megvalósítsam...
![]() ![]()
Szia!
Steve A hozzászólás módosítva: Szept 23, 2012
Tökéletesen működik már nem szakad be a dobhártyám, ha nullánál megnyomom a - gombot
![]() ![]() ![]() A hozzászólás módosítva: Szept 23, 2012
Az igaz, de erre a BZ parancsra volt szükségem, azt kitaláltam, hogy a XORLW nekem erre tökéletes, csak nem tudtam, hogy hogyan tudom megnézni, hogy a XOR műveletnek mi lett a vége...
![]() ![]()
Sziasztok!
A RAM-ban és az Eepromban van két szám ezt szeretném összehasonlítani, és ha nem egyezik továbblépni. Hogy lehetne ezt megoldani? A hozzászólás módosítva: Szept 23, 2012
Csak azért, hogy ne legyl tévedésbe: a BZ nem parancs, ilyen utasítása nincs a PIC-nek, hanem macro ( a fordító beír helyette néhány utasítást!)! Ha érdekel, nézz utána
![]() Steve A hozzászólás módosítva: Szept 23, 2012
Szia!
Nézd meg a "kormika-val" folytatott beszélgetésemet, annak mintájára megoldhatod a problémát! Steve
Köszönöm, már látom, (XORWF) de elötte mit kellen csinálnom?
Ha megnézed az a program egy regiszter és a W tartalmát hasonlítja össze. Neked 2 regiszter tartalmát kell összehasonlítani, de a PIC azzal a paranccsal csak egy regiszter és a W tartalmát tudja összehasonlítani --> az egyik regiszter tartalmát be kell másolni a W-be ( MOVF parancs! ) !
Steve
Szia!
Rá tudnál nézni mit irtam rosszul?
A MOVLW INDF0 nem kell ( miért írtad bele, tudod mit csiná? ), illetve nem látom, hogy ide v. oda menne az egyezőségtől függően ( próbáld ki az MPLAB szimulátorában!) !
Steve A hozzászólás módosítva: Szept 23, 2012
Kivettem, de még igy sem megy. ? Mit értesz azon hogy ide oda menne?
Szia!
Akkor rosszul van megírva a megszakítási rutin, vagy nem indul el a timer1 olyan nincs, hogy el sem jut odáig. Irjál esetleg privátban, és segítek. nem olyan bonyolult ez a dolog szerintem.
Szia!
először kiolvasod az eeprom adott címéről az adatot, erre ott van az adatlapon az eepromread példaprogram. abból visszatérve a W regiszterben van az egyik adatod, ezután már csak ki kell vonni a ram adatból. Ha a két szám egyenlő, az eredmény nulla,amit a STATUS regiszter jelez mégpedig a Z (zero) bitje, ezt kell megvizsgálni és ennek megfelelően tovább lépni. W= eprom adat subwf ramadat,w btfsc status,2 goto itt folytatódik, ha egyenlő nop itt meg ha nem egyenlő egyszerűbben: W= eprom adat subwf ramadat,w BZ xy ;ha egyenlő ugrás xy helyre
Szia!
Azt írtad, hogy: Idézet: „A RAM-ban és az Eepromban van két szám ezt szeretném összehasonlítani, és ha nem egyezik továbblépni.” Megtörténik az összehasonlítás az XORWF-el, de utána nincs elágazás aszerint, hogy egyenlő vagy nem ( csak be-ki kapcsolsz egy LED-et és visszatérsz a szubrutinból !) !? Az általam javasolt példaprogramban még volt egy BZ macro, amit nem is használsz!! Írtam, hogy próbáld ki a szimulátorban: hidd el hasznos, ha tanulni akarsz! Steve
Sziasztok!
Le lehet valahogy tesztelni, hogy a belső oszcillátor rendesen működik? Nem nagyon tudok másra gondolni, mint arra, hogy valami nem indul el megfelelően és ezért a program sem. Ha nagy nehezen beindul, akkor Vicsys tesztprogramja tökéletesen megy. Kipróbáltam, hogy mi történik akkor, ha a 4. lábat nem I/O-ra, hanem MCLR-re állítom. Valahogy sikerült beindítanom a programot, aztán hagytam pár percig futni (ment is), majd a resetet leföldeltem. Ahogy vártam, a villogás abba maradt, de újra már nem indult, akkor sem, ha az MCLR visszaállt. Kezdő vagyok a témában, de szerintem ennek nem így kellett volna történnie, újra kellett volna indulnia a programnak...
Szia!
Milyen kontroller? Ha van LVP programozási mód, akkor azt kapcsold ki! A teszteléshez egy biztosan működő program kell ( pl. egy tuti LED villogtatós ) és egy szintén tuti programozó ( valamint a fenti "javaslatokat" a téma tetején kiemelten célszerű megfogadni!!!) Steve A hozzászólás módosítva: Szept 23, 2012
Szia! Egy 12F629-el küzdök napok óta. A programokat Vicsys-től kaptam, egy RC Car flasher a honlapjáról (ez lenne a végcél), illetve egy teszt program innen. A sárga szövegre pont Te hívtad fel a figyelmemet, gyorsan át is futottam még egyszer és pótoltam a hiányosságokat.
![]() ![]()
Nem akarlak nagyon elkeseríteni, de lehet, hogy mégis csak az égető lesz a ludas. Megérné beruháznod egy PICKIT2 klónra. 3500...5000Ft. között tudsz venni. Aztán lehet, hogy megjön az étvágyad.
Sziasztok! Megint lenne egy kérdésem
![]() ![]() ![]() A hozzászólás módosítva: Szept 23, 2012
Tudok esetleg egy illetöt ajánlani akitöl én is vettem korrekt munka volt és 5000Ft
PIC12F629-nél és még néhány más típusnál speciális probléma, hogy a programmemória-terület végén lenni kell egy RETLW utasításnak, ami az órajel frekvencia beállításhoz a gyári kalibrációs értéket szolgáltatja. Ha ezt sikerül kitörölni (pl. bulk erase), vagy felülírni, de ha inicializáláskor mégis ráugrik a program, akkor abból nagy baj lehet (pl. végtelen ciklusban resetre fut a program).
Jól értelmezted, viszont egy dologra azért felhívnám a figyelmedet!
Az adott kontroller adatlapjába az elektromos jellemzők szekcióban meg van adva, hogy mekkora lehet az ADC minimális referencia feszültsége. Ezt a korrekt működés érdekében mindenképpen be kell tartani.
Akkor jó
![]() ![]() ![]() A hozzászólás módosítva: Szept 23, 2012
Ezt a 0,6 V-os értéket én nem láttam az adatlapban. Amit találtam azt a mellékletekhez feltettem. Ez alapján 5V kontroller táp esetén a (Vref+) -nak legalább 2,5V- nak kell lennie, úgy, hogy a (Vref+) - (Vref- ) különbség legalább 2V legyen.
Hy! A probléma megoldódott, bár a megoldást csak sejtem. Miután minden engedélyezve van a megszakításhoz, valószínűleg odaragad. Mindent lecsupaszítva vettem észre hogy a mentés makró kikommentelése után rendesen megy a Tmr1 megszakítás. Ami a következő: (természetesen a jelzőbit a belépésnél azonnal törölve van, azután jön a mentés )
Nemértem mi ezzel a baja de ha ezután egy sorban annyit csinálok hogy:
akkor ki sem kell kommentelnem a mentés makrót. A szervó problémájára eddig nem nagyon volt időm, de ha a Tmr1 megszakítás végzi el nem az igazi. Az rendben van, hogy kilép a szervó által kért ~ 20ms -os időnként, de a szervó nem áll pozícióba egyetlen jel alatt. Ahogy észrevettem változó, de aggasztóan sok kell, miközben a vétel nemtud érdemben működni. Valószínűleg jobban járnék magával a főprogram részével, szerintem sokkal többet lehet ott mint az egymásba ütközhető megszakításokkal. (20 Mhz-es a kristály, így már "odakint nem remeg, csak morog, de engem ez is idegesít.). Ehhez azt kellene tudnom a megszakítás kezdetén, hogy honnan jött és akkor a megszakítás idejét elvenném a pozíció jeléből. De erről elképzelésem a pcl- de nem érzem biztos pontnak ezt. A hozzászólás módosítva: Szept 24, 2012
Szia!
Olvastad? Indítsd el a programodat szimulátorban, kövesd végig a mentést és visszaállítást. Az INTCON regisztert nem kellene megváltoztatni a megszakítás rutinben, hacsak valamelyik engedélyező bitjét (nem a GIE -re gondolok) nem áll szándékodban állítani.
Sziasztok
![]() az lenne a kérdésem, hogy hobbiszinten imádok bütykölgetni nyákokat, magam tervezem nyomtatom, vasalom, maratom, fúrom és forrasztom ![]() Na ez azért lényeges, mert szeretnék továbblépni, mégpedig PIC-et programozni így a kapcsolási rajz lelkét is én határozom meg ![]() Na a probléma ott van, hogy annyit tudok a pic-ről, hogy PIC ![]() De suliba tanultam szakmaként a PLC programozást és valahogy nem lehetne összehozni a két dolgot?? Halottam, hogy sokban nem különböznek belülről se, programba se, csak ugye magába a program nyelvébe. na a lényeg, hogy valaki tudna küldeni egy pic programozási alapokból nagyon kezdő szinttől valamit, vagy pedig a fontosabb, hogy plc program alapján nem lehet valahogy átkonvertálni pic nyelvre? a segítségeket előre is köszönöm ![]()
Átnéztem. Az FSR regisztert ha nem mentem az milyen galibákat okozhat?
A hozzászólás módosítva: Szept 24, 2012
|
Bejelentkezés
Hirdetés |