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...Konkrétan azt nem tudom, hogy hogyan tudom megnézni, hogy a változó értéke mondjuk 255-e... Melyik utásítással tudom ezt megtenni?
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 Nagyon szépen köszönöm a segítségedet
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... Mégegyszer köszi
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. Az egyetlen kakukktojás a programozó; mivel kezdő vagyok, még nem tervezem, hogy naponta 10 PIC-et fogok programozni, így egy egyszerű (Watt féle WLPT Vpp mini v4) PIC programozó használok (illetve a hozzá írt égető programot). Ha ez lesz a ludas, el fogok keseredni, pont a ritka használat miatt nem akartam komolyabbat...
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 Vettem régebben egy Energizer mikrokontrolleres akkutöltőt, itthon el is kezdtem vele tölteni 2 AAA-s akkut, aztán kb 3 óra múlva egy hangos pukkanásra lettem figyelmes... Az egyik akku volt az, a másikon is szét volt már olvadva a zsugorfólia, szóval evidens volt, hogy a töltő a ludas. Mivel adtak rá 2 év garanciát, visszavittem, de elküldtek, mondván az akkuk voltak rosszak. Ma miután elkészültem a hangerőszabályzóval (köszi kissi ) unalmamban szétszedtem. Nemhogy mikrokontrollert, de még aktív alkatrészt sem találtam benne, van benne egy 2x5V-os szekunderű trafó, 2db 1N4001 dióda, 6 db ellenállás, amiből 2 meg is pörkölődött, és két LED a csatolt rajz szerint. senki ne vegyen ilyen töltőt, nagy átverés, elkértek érte 5990Ft-ot, aztán van benne 200Ft-nyi cucc... Gondoltam átalakítom, hogy egy PIC vezérelje, az AD-vel mérve az akkuk feszültségét, és ha megvan a töltés végén a DeltaPeak, akkor lekapcsol. Az A/D átalakítás megy, a kérdésem az lenne, hogy jól értelmeztem-e a PIC adatlapját... Szóval ha én a PIC AD-jének a pozitív referenciafeszültségnek használható portját rákötöm egy 1,5 voltos referenciafeszre, a negatív referenciafesz meg a föld lenne, akkor a 0-1,5volt közötti tartományt tudja mérni 10bit-es pontossággal? Vagy rosszul értelmeztem az adatlapot?
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ó Megnéztem a datasheetet (amúgy 16F818 lessz ez is, ebből van itthon jópár darab ) és ott azt írták, hogy 0,6 V a minimum referencia, szóval akkor elvileg gond nélkül kell tudnia mérni az akkufeszt, ami olyan 0,9-1,4V lessz kb
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 |