Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Nem tudja.
De miért kell neked olyan konstrukcióban gondolkodni, ami nem a nyelvhez illik? Használd a felkínált lehetőségeket és igazítsd hozzá a feladat megoldássát. Ha a feladat túl bonyolult, akkor a kód is az lesz. Ezt nem lehet elkerülni. Esetleg használj más nyelvet. Idézet: „Tehát ha én megoldom ,kb. 120 Ω -al ,akkor ,ha folyamatosan vezérlem ,mondjuk pwm -el megoldható ,hogy igen csökkentett fénnyel világítson ,viszont ha kell villanjon nagyot ?” Megoldható, de az is megoldható, hogy egynél több lábbal vezéreld - különböző értékű ellenállásokon keresztül, s akkor nem kell a PWM-mel bohóckodni.
Nem rossz ötlet, tetszik a megoldás! Akár az áramokat is lehet növelni tranyók nélkül is, figyelembe véve a PIC maximális terhelhetőségét a portokra vonatkozóan(adatlap)!
Köszönöm ,jó ötlet....
Csak minél több ledet kéne vezérelnem egy PIC-el ....
Savazz csak nyugodtan !
Már kijavítottam....
A több lábas megoldás nem zárja ki a több LED-et. Te miből gondoltad, hogy ez probléma? A probléma a PIC össz áramterhelhetősége lehet. Ha annál több kell, akkor tranyókat kell vezérelni és kész...
Idézet: „Savazz csak nyugodtan !” Láttam már utána, csak az már új lapon volt, és az ív már elsült! Idézet: „Annyira nehéz IF...THEN...ELSE elégazásokat csinálni ASM-ben, decfsz-el, meg incfsz-el. Annyi változó kell, meg goto, hogy belebuggyanok. Nincs könnyebb módja? Nem tudja az MPASM az IF...THEN...ELSE, vagy a DO...WHILE-t értelmezni?” Ezt most nem ertem, miert kell az IF..THEN..ELSE -hez valtozo? Amugy meg csinalj makrot belole... En SWITCH..CASE -bol csinaltam makrokat anno. Masik lehetoseg, hogy feladod az ASM nyelvu programozast es C-ben bajlodsz...
Pici segítség kéne
LIST P=16F877 #INCLUDE "P16F877.INC" __CONFIG _XT_OSC&_CP_OFF&_WDT_OFF&_LVP_OFF CBLOCK 0x20 T1 T2 T3 ENDC ORG 0 Át kéne írnom a letöltő miatt 0x03 -ra ,de hogy kell ? CBLOCK 0x03 ,de akkor org mi ?
CBLOCK 0x20 az a RAM ban "foglalja" le a helyet (illetve csak számokat ad az alatta elhelyezett címeknek sorban egyessével 0x20 tól)
Az ORG szabja meg hogy hová kerüljenek az utánna álló utasítások a programmemóriában. Tehát az ORG 0-val az első utasítás a 0-ás címre fog kerülni a második az 1es re és így tovább. Neked az ORG 0 át kell átírnod ORG 3 ra így ott lesz a programod kezdete.
A CBLOCK-nek es az ORG-nak semmi koze egymashoz! A CBLOCK az konstans definialo, es leggyakrabban a file regiszterek kiosztasara hasznaljak, mig az ORG az a program memoria cimet hatarozza meg.
Köszönöm ,igyekszem megtanulni....
Eddig csak írogattam
Ismét egy kis segítségre van szükségem....
DELAY MOVLW d'10' MOVWF T1 DEL MOVLW d'10' MOVWF T2 DEL1 MOVLW d'255' MOVWF T3 DEL2 NOP NOP NOP NOP DECFSZ T3,f GOTO DEL2 DECFSZ T2,f GOTO DEL1 DECFSZ T1,f GOTO DEL RETURN END Ami kevés "programot" írtam (inkább csak szórakoztam),általában ezt a késleltetést szoktam használni ,de nem igazán értem. Ezzel megoldható a led "aktív" és "passzív" ideje is ? Meg aztán a projectemben valami "randomításra " lenne szükség.... Szintén felmerülő kérdés : ha mondjuk 1 ledet rákötök PORTD,0-ra egy Xellemállattal,valamint PORTD,1 -re Yellenállattal és vezérlem ,nem gáz ,ha a port kimenet de mégis az ellenálláson jut rá fesz ?
Köszönöm szépen!
El sem hiszem ,de magamtól át tudtam állítani Idézet: „MOVLW 128 ,az nem egyenlő MOVLW B'10000000' ?” Írd így:
Idézet: Elkerülhető a fölösleges terhelés, ha a nem használt lábat bemenetnek állítod (TRIS bit=1).„Szintén felmerülő kérdés : ha mondjuk 1 ledet rákötök PORTD,0-ra egy Xellemállattal,valamint PORTD,1 -re Yellenállattal és vezérlem ,nem gáz ,ha a port kimenet de mégis az ellenálláson jut rá fesz ?” Az is lehetséges megoldás, ha egy-egy diódát teszel a kimenetekre (természetesen azok nyitófeszültségét is be kell kalkulálni...).
Emlékeztek még, hogy szenvedtem a 16F726-al meg a ds1820-al?
Megcsináltam ugyan azt a kapcsolást egy 18f452-vel (csak ugye ez is felületszerelt, azután csinálni kellett hozzá nyákot, és nem volt itthon tüskesor) és a kód csont nélkül megy. Ha ekkora különbség van a 16F és a 18F között, akkor azt hiszem a 16F-et elfelejtem, árban úgysincs szerintem nagy különbség.
Meg ne sértődj, de itt nem a PIC-ekben van a hiba, ezt biztosra veheted! Egyébiránt én is a 18F-es szériát tartom az ésszerű választásnak, csak sokan kezdők azt hiszik, hogy a nagyobb számmal kezdődőek nagyobb nehézséget fognak okozni! Hiába mondja az ember, hogy ez nem így van, na de mindegy...
Idézet: „Ha ekkora különbség van a 16F és a 18F között, akkor azt hiszem a 16F-et elfelejtem, árban úgysincs szerintem nagy különbség.” Mar egyszer emlitettem volt, hogy a hiba nem a PIC-ben van. Az, hogy a 18F-el megy, az adodhat gyartasi szeriabol fakado elteresek miatt is, es adodhat abbol is, hogy pici mas az elektronika benne, de ha a specifikacionak megfeleloen van az a panel megepitve akkor ilyen kulonbseggel nem szabadna, hogy talalkozz. Lehet megvaltozik a homerseklet vagy a paratartalom vagy 1 tizedet a bemeno feszultsegszint es maris fellep a hiba. Keresd meg a hiba okat es ha megvan akkor menj csak tovabb. A hibakeresesnel szisztematikussagot alkalmazz, kapkodva nagyon nehez ralelni a forrasara. Probald meg eloszor kizarni, hogy az oscillator okozza-e a hibat (kapcsold pl belso oscira). Zavarszureseket helyezz el mindenhova, megha felesleges is.
Én inkább olyasmire tudok gondlni, hogy bank és lapváltások hibás kezelése, prifériák helytelen konfigurálása, portok eltérő elektronikai kialakításából adódható vezérlési eltérések, stb. Szóval, a fő gond a PIC hiányos ismerete, szerintem...
Hát én végképp nem értem, mi a baj a 16F-ekkel. Nekem a 16F946-on atomstabilan megy az 1-wire komm. már napok óta a DS1821-gyel.
Ráadásul az egészet CCS C-ben írtam meg, mondván, így kényelmesebb a programszerkezetbe belenyúlni, és beletenni az órába a plusz funkciókat. Hála az előrelátásomnak, az állapotgépes megoldás miatt csak az új funkciókat megvalósító kis rutinkákat, programrészleteket kellett megírni, valamint az állapottáblába felvenni az új működési állapotokat és az azokat kiváltó eseményeket. Nem szeretem reklámozni magam, de azt hiszem, érdemes rászánni egy kis időt és megérteni, mit csinál ez a kód, mert szerintem nagyon hasznos. Főleg egy ilyen kütyünél, ahol van összesen 3 gomb és minden működési (kijelzési) állapotban mást és mást jelentenek a gombok, plusz még létezik rövid, hosszú és lenyomva tartott-ismételt nyomás is.
Ha jól emlékszem, anno CCS C-vel próbálta az 1-wire-t a kollega. Akkor adtam példaprogit, ami asm-ben jól működik, és javasoltuk, hogy a lefordított kódot nézze meg, a portkezelés hogyan történik.
Azóta megírtam a CCS C-s 1-wire rutinjaimat és én is nézegettem elég sűrűn a CCS C helpjét is, valamint a fordított kódot is. Nem mindegy ugyanis, hogy a TRIS regisztereket mikor írja, illetve hogy írja-e minden portpiszkálásnál, ha nem figyel oda az ember, keletkezhetnek fals tüskék, és onnantól kezdve lőttek a kommunikációnak. Egyébként figyelmesen olvasva a CCS C doksiját kiderül, hogy írja is, melyik utasítás foglalkozik és melyik nem a beállított I/O móddal. A másik, amit lehet, hogy a Dallas doksi nem hangsúlyoz eléggé ki, de a 1821 is úgy működik, hogy "reset-parancs-válasz". A következő parancsot nem fogja megérteni, ha nem kap előtte egy új reset-et. Ez nekem is egy-két félórámba került, mire ez világossá vált.
Sziasztok !
Van valakinek linkje esetleg valami hasonlóhoz ,ami nem on-line ,hanem a gépen fut ? Köszicalculator
Ilyen várakozásokkal akarod teleszórni a kódodat? Tudod mi a különbség várakozás és időzítés között?
Csak nagyon alap(buta) programok működhetnek várakozásokkal. Érdemes a Timerekkel foglalkoznod, de ahogy én érzem elég nagy hiányosságok vannak a programszervezés terén is, nem különben az elektronikai alapok körül. Érdemes lenne ezeket pótolnod!
na ja...
de hát ez a miértek hogyanok topicja
Tanácsodra nézegetem (már egy ideje) Topi : Nulláról a robotokig c. cikkét.
Nagyon tanulságos ,de -úgy látszik- számomra még mindig nem elég bő..... Van itt az OPTION REG -el kapcsolatos téma ,ahol is az osztókról van szó: link namármost ha Opt. reg 111 ,akkor nem látom a ledeket villogni (ill. nagy frekivel talán) ,hogy tudok még nagyobb osztást (256 -nál nagyobbat) csinálni ?
Feltettem az - oldalamra - egy új - lapot -, amin hivatkozásokat találsz PIC-es témában, amin el lehet indulni. Menet közben még bővítem, ha olyan oldalt találok, ami érdemes rá (minőségi javaslatokat elfogadok!).
Az elektronikai hiányosságokat pedig ne itt próbáld beszerezni, mert ez nem az a topic. |
Bejelentkezés
Hirdetés |