Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   954 / 1320
(#) bankimajki hozzászólása Ápr 18, 2011 /
 
Köszönöm az infókat. Megoldottam belső oszcival. Egyébként dugdosós próbapanelon volt. És szerintem is kontakt probléma volt. Az MCLR lábat felhúztam 10k-val Vdd-re. De most átkonfigoltam úgy hogy az is I/O port legyen.
(#) El_Pinyo válasza bankimajki hozzászólására (») Ápr 18, 2011 /
 
Vigyázz, az /MCLR csak bemenet lehet és ekkor is valamely határozott logikai szintre kell húzni, mert előfordulhat, hogy a bemeneten lévő kapacitás programozói feszültség szintre töltődik, de hallottam már olyat is, hogy meg is hibásodott a kontroller.
(#) trudnai válasza dudzsi hozzászólására (») Ápr 18, 2011 /
 
Idézet:
„Basszus dollár jelet raktam.”


Na az meg milyen jel? Basszus kulcs felulrol athuzva ketszer?
(#) bankimajki válasza El_Pinyo hozzászólására (») Ápr 18, 2011 /
 
Erről nem tudtam. Sok szenvedéstől szabadítottál meg. Köszi.
(#) watt válasza bankimajki hozzászólására (») Ápr 18, 2011 /
 
Javaslom olvasd el azt a topicot, mert még több szevedéstőlé szabadítod meg magad! Erről is csak fél ezerszer írtunk eddig...
(#) dudzsi hozzászólása Ápr 18, 2011 /
 
Sziasztok!
Nézegetem az lcd vezérlést. Van is egy példa progi 16F676-ra. De valmiért nem lépbe a macroba. Igy viszont nem is müködik a dolog. Miért van ez?

16f676lcd.asm
    
(#) zsidanyi hozzászólása Ápr 19, 2011 /
 
Üdv!

Egy olyan problémám lenne hogy dsPIC33F-eknél az UART-nak van egy 4*1 bájtos vevő és küldő FIFO-ja.
Ha azt akarom hogy mondjuk küldök egy karaktert gépről és RX interrupton belül vissza is küldöm azt a gépnek, akkor azt küldje vissza, ne csak harmadjára, akkor le kéne tiltanom a FIFO-t vagyis csak 1*1 bájtosra kéne megválasztanom. Erre sajnos nem találtam lehetőséget a datasheet-ben. Esetleg aki már találkozott ilyen problémával, le tudná írni, hogy mit kell ilyenkor tenni, mert teljesen meg vagyok lőve ...
A választ előre is kösz!
(#) Hp41C válasza zsidanyi hozzászólására (») Ápr 19, 2011 /
 
Szia!

Az UxSTA regiszter URXISEL<1..0> bitjeivel állítsd be, hogy minden karakter vételénék kérjen megszakítást. URXISEL 1..0 = b'00'
(#) zsidanyi válasza Hp41C hozzászólására (») Ápr 19, 2011 /
 
beállítottam csak sajnos az a baj, hogy kezdetben csak 0x00-ákat küld vissza. aztán amit először küldtem neki, azt küldi vissza harmadszorra és így tovább.
Szóval végig megy így is a FIFO-n, és csak aztán küldi vissza amikor már megtellt karakterekkel.
(#) nyjani válasza El_Pinyo hozzászólására (») Ápr 19, 2011 /
 
Idézet:
„Az /MCLR bemenethez nem feltétlenül szükséges a C3 és R2, bár elvileg hibát nem okozhat.”

Elvileg nem, de gyakorlatilag ez okozta a problémát. Végre sikerült megoldani a problémát. Azt vettem észre, hogy mikor rádugtam a kütyüt az USB csatlakozóra, akkor feljött a hibaüzenet, hogy nem ismerte fel az eszközt. Ha ezután kihúztam és egyből visszadugtam, akkor felismerte az eszközt. Gondoltam, hogy vagy tápkondiknál van probléma, hogy egy tranziens jelenség még egyszer reseteli a kontrollert, vagy a /MCLR láb még resetben tartja, mikor rádugom a portra, közben a PC már elkezdi inicializálni az eszközt. És ez volt a baj. Ezért esett ki a szinkronból az eszközöm. Levettem a kondit a nyákról, és mindjárt megy rendesen. Nem gondoltam, hogy a DIP tok és a SOIC ennyire különbözően viselkedhet ilyen téren. Köszönöm szépen a segítséget!
(#) zsidanyi válasza (Felhasználó 13571) hozzászólására (») Ápr 19, 2011 /
 
Ne haragudjatok nagyon siettem amikor írtam, és csak gyors válaszolni akartam. Még egyszer bocs!
(#) Attila86 hozzászólása Ápr 19, 2011 /
 
Vettem egy PICkit3-at, és az MPLAB ezt írja hogyha csatlakoztatom:
Idézet:
„PICkit 3 detected
Connecting to PICkit 3...
Firmware Suite Version...... 01.26.43
Firmware type......................PIC18F
PICkit 3 Connected.
PK3Err0045: You must connect to a target device to use PICkit
3.”

Mi baja van? Kössem rá a PIC-et? Ha rákötöm, akkor is ugyan ezt írja.
(#) Attila86 válasza Attila86 hozzászólására (») Ápr 19, 2011 /
 
Az MPLAB-ban a "Programmer/Settings" résznél a "Power" fülön bepipáltam a "Power target circuit from PICkit 3" négyzetet, és így már tetszik neki. Sőt, ez után már a PICkit3 saját programja is működik!

Egyébként érdekes hogy nem hajlandó ugyan arról az USB kábelről működni amiről a PICkit2. Nyavalyog hogy neki kevés az USB hub árama. Az elődjének elég volt. Na mindegy, máshova kell dugni és kész.
(#) norby87 hozzászólása Ápr 19, 2011 /
 
Szerintetek a két PIC ára miért egyezik meg (chipcad) :
dsPIC30F4011-20I/P - 1180Ft - 20MIPS
dsPIC30F4011-30I/P - 1180Ft - 30MIPS

Van olyan aki azt mondja, hogy "ha már egyforma az ára, akkor inkább a lassabbat veszem" ? Ebben tuti van valami sunyiság
(#) vicsys válasza norby87 hozzászólására (») Ápr 19, 2011 /
 
Szerintem az is lehet, hogy valamelyik már régóta pihen raktáron, a másiknak meg levitték az árát. Van aki célirányosan vásárol és nem érdekli, hogy 10MIPS-et tud nyerni... Bár ez már eléggé off.
(#) mrfencer hozzászólása Ápr 19, 2011 /
 
Hali!

Tudnátok nekem ajánlani, valami oldalt, ami jól leírja, hogy hogyan tudok pl olyan progit irni asm-ben PIC18F4x -re ami két nyomógom lenyomása között századra pontos időt mér? Illetve kellene valami leírás LCD kezelésről is mert a mért eredményt ki akarom iratni

Köszi
(#) Lozsa hozzászólása Ápr 19, 2011 /
 
HI-TECH C-ben írok pic12 mcu-ra programot, amiben egy NTC által mért hőmérséklet alapján PWM jelet változtatnék.
Lenne 2-3 változóm (pl: maxDuty) amit bárhonnan el szeretnék érni.
Bármilyik forrásfájlból és azon belül is bármely függvényből.
Hogyan kellene azt a változót deklarálnom?
Amúgy egy unsigned char típusú változóról van szó.
(#) Ideiglenes válasza mrfencer hozzászólására (») Ápr 19, 2011 /
 
LCD kezeléséhez ajánlom ezt az oldalt. Ha a modult használod kijelzőnek, akkor meg nem is kell tudnod nagyon LCD-ül, elég a pic soros adóját megfelelően beállítani és utána az adóregiszterbe beleírni a megjelenítendő betűt/számot.
(#) potyo válasza Lozsa hozzászólására (») Ápr 19, 2011 /
 
Egyik forrásfájlban létrehozod egyszerűen unsigned char maxDuty; módon, a többi forrásfájl elején pedig extern unsigned char maxDuty; módon hozod létre. Ezután mindenhol egyszerűen maxDuty néven használod.
(#) watt válasza mrfencer hozzászólására (») Ápr 20, 2011 /
 
Beállítod a CCP1 modult capture módra, majd hozzárendeled a Timer1-et(vagy a Timer3-at), amit beállítasz olyan számlálási frekire az előosztójával(esetleg a Timer1 saját külső oszcijával), ami megfelel a felbontásodnak. A CCP1 megszakítását engedélyezed, majd a bemenet élét a gombodnak megfelelően beállítod. Az első megszakításkor a CCP1 regisztereit elmented, a bemenet megszakítási élét mefordítod, valamint a gomb elengedéséig számolod azt is, hogy hányszor csordúl túl a Timer1, ha a gomb sokáig is le lehet nyomva. A gomb elengedésekor a megszakításban kivonod a CCP1 regiszter elmentett és pillanatnyi tartalmait, és hozzáadod a Timer1 túlcsordulásait is. A kapott érték arányos lesz a gombod lenyomási időtartamával a Timer1 számlálási ütemének felbontásában. A gombra hardveres prellmentesítés kell, ha század másodperces felbontást akarsz.
(#) icserny válasza mrfencer hozzászólására (») Ápr 20, 2011 /
 
A mellékelt program egy beérkező impulzus szélességét méri. Nyomógombhoz meg kell cserélni a figyelt élek polaritását (előbb lefutó, majd felfutó).

LCD-re is találsz információkat és mintaprogramokat a honlapomon (itt és itt).

Assemblyre is átírhatod a programokat, de én egy percig sem kínlódnék vele.

distance.c
    
(#) Hp41C válasza icserny hozzászólására (») Ápr 20, 2011 /
 
Szia!

Szerintem ez a kód időnként rosszul számol. Az alacsony szintű megszakítás huzamosabb időre tiltva lehet az USB kiszolgálása miatt.

Nézzük a következő eseteket:
1.
- CCP1 élet detektál és tárolja a T1 értékét, megszakítás kér.
- Még mielőtt a megszakítás érvényre jutna T1 túlcsorul, megszakítás kér.
- Most jut érvényre a megszakítás.

A CCPR1H:CCPR1L regiszterekben nagy érték van, a tmr1_ov -t pedig növeli a megszakítási rutin. Ekkor hibásan számol...

A megszakítás érvényre jutása és a T1IF tesztelése között is idő telik el. A hibás számításhoz elég, ha T1 túlcsordulása bekövetkezik addigra, amíg a CCP1 megszakítás kiszolgálása eljut a T1IF vizsgálatához.

2.
- T1 túlcsorul, megszakítás kér.
- Még mielőtt a megszakítás érvényre jutna CCP1 élet detektál és tárolja a T1 értékét, megszakítás kér.
- Most jut érvényre a megszakítás.

A CCPR1H:CCPR1L regiszterekben kicsi érték van, a tmr1_ov -t pedig növeli a megszakítási rutin. Ekkor jól számol...
(#) icserny válasza Hp41C hozzászólására (») Ápr 20, 2011 /
 
Köszönöm az észrevételeket!

Szerintem nincs USB forgalom mérés közben, mert az bőven lezajlik a várakozási időben. A mások probléma viszont valós, amin esetleg a mérendő jelhez való "hangolással lehet legkönnyebben segíteni.

Az ultrahangos érzékelőm esetében pl. bekapcsolható az 1:4-es Timer1 előosztó. A kb. 17 ms-on túl érkező válasz ugyanis már értelmetlen, a 83 ns-os felbontású időmérés pedig szükségtelen, tehát normális esetben beleférünk a 16 bites Timerbe...
(#) Hp41C válasza icserny hozzászólására (») Ápr 20, 2011 /
 
Szia!

Csak egy problámára figyeltem fel, de az programból korrigálható.
Ha a T1 túlcsordulási és a CCP1 megszakítása egyszerre jön be, meg kell vizsgálni, hogy a CCPR1H értéke mekkora.
- Ha nagy, akkor a CCP1 előbb tárolt, a T1 később fordult át.
- Ha kicsi, akkor a T1 előbb fordult át, aztán tárolt a CCP1.

Annak a valószínűsége, hogy 256 (esetleg 32768) T1 órajel alatt ne kerüljünk a kiszolgáló rutinba már igen alacsony.
(#) mate_x hozzászólása Ápr 20, 2011 /
 
Üdv!

Watt égető kapcsolásait nézegettem, de valamit nem értek.
Ebben a kapcsolásban, az mclr lábat össze kell kötni a vdd-vel az áramkörön kívül. Miért nem az áramkörön belül van elhelyezve az ellenállás?
A másik kérdésem pedig, hogy ebben a kapcsolásban, pedig az mclr pont, hogy gnd-re van kötve.
Most, akkor, hogy is van ez?
A választ előre is köszönöm.

Üdv.: mate_x
(#) ciszfejleszto hozzászólása Ápr 20, 2011 /
 
Sziasztok ! Teljes mértékben kezdő vagyok mikrovezérlők területen, de úgy gondoltam picit belekóstolnék a dologba. Találtam egy jónak tűnő leírást
Lenne néhány kérdésem. Először is jó lesz ez nekem ? (programozni régóta tudok, digitális technikát szeretem, gyakorlom, bár inkább csak papíron). Másodjára pedig örülnék egy linknek ahonnan meglehet rendelni, a leírásban szereplő Picstart Plus nevű dolgot, vagy legalább írhatnátok róla például egy árat. Illetve még annyi hogy ajánlották a PICkit 2-t is, nem tudom melyik lenne kézenfekvőbb nekem mint teljesen kezdőnek. Diák létemből adódóan, nincs felesleges 50-100 ezer forintom kezdő felszerelésre, illetve csak belekóstolni szeretnék, lehet hogy nem is igazán az én világom, de eléggé érdekel !
Előre is köszönök minden választ !
(#) Hp41C válasza mate_x hozzászólására (») Ápr 20, 2011 /
 
Szia!

Már több oldalon, több topokban tárgyaltuk a témát. Most itt összefoglalva:
- A MCLR bemenet érzékeny a túlfeszültségre, mivel nincs benne védődióda a Vdd felé a programozó feszültség miatt.
- A programozáskor a vezetéken és a láb kapacitásán maradó feszültség veszélyes a kontrollerre.
- A lábon maradó töltést el kell vezetni valahová:
-- Ha csak programozni szeretnénk a készülékkel, debuggolni nem, akkor a legjobb választás a MCLR földre húzása. Ez megengedi az egyes esetekben egyedül eredményre vezető "Vpp first programming entry" / "Vpp előbbi bekapcsolásával programozási módba lépés" módot is.
-- Ha debuggolni is szeretnénk a készülékkel, a föld nem jó, mert engedélyezett MCLR funkcióval a kontroller el sem indul. Ekkor a MCLR tápra húzása az egyedüli út. A "Vpp first programming entry" / "Vpp előbbi bekapcsolásával programozási módba lépés" módnál problémák léphetnek fel.

Az az ellenállás a kapcsolás elkészülte után, a tapasztalatok alapján került a rajzra, és azt is szimolizálja, hogy az ellenállás nem a programozó része, inkább magára a pic-re / adapterre / kártyára kell tenni.
(#) Hp41C válasza ciszfejleszto hozzászólására (») Ápr 20, 2011 /
 
Szia!

- A leírás jó, de a 16F84A árából csaknem 3 db 16F628A is kijön, és még sokkaltöbbet tud...
- PicstartPlus a ChipCad -tól rendelhető. Nem érdemes, mert drága...
- PICKit2 szintén az előbbi helyen vásárolható, itt a fórumon 2 klón leírását is megtalálod...
(#) watt válasza mate_x hozzászólására (») Ápr 20, 2011 /
 
És hogy miért nem az égetőben kap helyet, azért nem, mert ha az égetőben és a céláramkörön is van egy 10k, akkor az már egyes 5V-os regulátort túlterhelhet, miután a felesleges áramot valahová el kell vezetni, és ez a regulátoron keresztül a föld felé történik. Ezért kell figyelni, hogy ha nincs regulátor a céláramkörben(pl. egy adapter is ilyen áramkörnek tekinthető), akkor nem szabad a Vdd felé húzni az MCLR-t, hanem a test felé kell. Ezeket a megfontolásokat jobb ha megérti az ember, mert magolva megjegyezni, hogy mikor mi a helyes megoldás, nem lehet.
(#) ciszfejleszto hozzászólása Ápr 20, 2011 /
 
Szóval PICkit 2-vel érdemesebb kezdeni ? ? És ahhoz valami bevált szakirodalom esetleg ?
Következő: »»   954 / 1320
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem