Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Ha minden igaz, akkor neked 16F887-es chiped van, annak pedig az RB0 lábán van analóg bemenet is, amit nem tiltottál le. ANSELH regisztert nézd meg.
Ezer köszönet, ha jól rémlik a könyvben is le volt írva... sosem jöttem volna rá, legalábbis nem ma az is biztos!
El is kezdem bütykölni a kapuprogit. Még egyszer köszönet!
Ha mechanikus kapcsolóval megszakítást váltok ki, akkor azt áramkörileg pergésmentesítsem?
Nem muszáj áramkörileg, mert ha már kontroller, akkor megcsinálhatja szoftveresen is.
Egyébként én nem erőltetném a kapcsolót a megszakítást okozó lábra. A kapcsoló kellően lassú periféria ahhoz, hogy a főprogram a "holtidejében" néha ránézzen, pergésmentesítse és lereagálja. Egy esetben fontos megszakítást kiváltó lábra tenni: ha ezzel a kontrollert is akarjuk ébreszteni SLEEP-ből. Viszont ekkor sem muszáj megszakításból kezelni, kontroller felébred, fut mondjuk egy másodpercig és közben pergésmentesíti a bejövő jelet (ennyi biztosan elég rá, hogy leálljon a pergés), aztán megcsinálja amit kell, és ismét SLEEP. Idézet: „fut mondjuk egy másodpercig és közben pergésmentesíti a bejövő jelet (ennyi biztosan elég rá, hogy leálljon a pergés),” Az nagyon sok! Ha nehany tiz ms alatt nem pereg le akkor a kapcsolot ki kell hajitani. Amugy a kontroller fel is ebredhet bizonyos idokozonkent hogy a kapcsolora ranezzen, pl a WDT is tud ebresztgetni es 65ms-enkent megnezni mi a helyzet, ami ugye nehany utasitasbol megoldhato, es ha nincs semmi akkor alvas... Ha megnyomtak a gombot akkor status beallit, meg egyszer varunk 65ms-et aludva, aztan megint megnezzuk, ha meg mindig nyomva van akkor tenyleg megnyomtak a gombot es a perges is lefutott minden bizonnyal.
Egyenlőre csak a gányolás megy, de jegyzem a pontos ismereteket.
Most nincs szükség az energia takarékosságra és a szép kódra sem, határidőre van optimalizálva a feladat, mert kellemetlen már ilyen hidegben ráncigálni a kaput Abban tudna valaki segíteni, hogy milyen tranzisztorral tudok max. 30V-ot kapcsolni? Esetleg egy vázlatot is igényelnék, hogy hogyan tegyem a PICre.
Mekkora áramot akarsz a tranzisztorral kapcsolni?
Mennyit fogyaszthat egy nagyobb relé, maximum 200mA?
Akkor pl. BC 337 megfelelő neked, az 800mA-ig jó. Icserny linkelt neked egy oldalt nemrég, az ott levő kapcsolási rajz jó lesz, csak a PIC felé 1k ellenállást tegyél a 10k helyére, illetve az 5V1 zener helyett tegyél valami 35V körüli zenert. Bár én zener helyett sima diódát tennék, pl. 1N4148-at.
A dióda mire kell? Nem fog beleszólni, ha 24V AC-t kapcsolgatok?
A teljes kép úgy néz ki, hogy a PIC-kel figyelem a végállásokat (2) + egy fotocella bemenet + a rádióvevő jele, amire indul a dolog. A jelszintek kívülről 24V váltó, mindenhonnan, mert az van gyárilag. A bemenetekhez a feszosztót mekkora nagyságrendbe számoljam? Egyik ismerős MOhmban ajánlotta....
Tisztázzunk valamit: 24V váltakozót kapcsolnál a tranzisztorral? Mert az nem fog menni, akkor triak kell. Ha viszont a relé kapcsolná a váltakozófeszültséget, akkor semmi probléma. A dióda a kikapcsolásnál a tekercsben maradó energiát vezeti el, hogy ne legyen túlfeszültség és ne nyírja ki a tranzisztort.
Az osztó alsó tagját én inkább kiloohm nagyságrendbe tenném. Mondjuk 2k2 az alsó oldalra, a felső oldalra meg a 24V-hoz 8k4 kellene, ezt csinálhatsz úgy, hogy 8k2 és 220 ohm sorban, vagy esetleg tehetsz 9k1-et.
Dioda arra kell, hogy a rele tekercseben indukalodo ellen aramot levezesse.
Az pedig, hogy a rele mit kapcsol tulajdonkepp mindegy, a lenyeg, hogy a behuzo tekercset mivel hajtod meg. Ez pedig le kell legyen irva a rele doksijaban, hany volt mekkora aram.
Köszönöm a válaszokat! Akkor valószínűleg inkább letudom a problémát 5V-os relékkel. Ehez is érdemes tranzisztort beraknom vagy a PIC lába elbír ~100mAmpert?
Hali!
Szerintem mindenképpen tegyél be egy tranzisztort, vagy egy nMOSFET-et ami kapcsolja a relét. A PIC lába adatlapi adat szerint 25 mA az összes portról pedig egyszerre 200mA-el lehet terhelni.
Mindenképpen tranzisztor vagy kis mosfet kell. 100mA-re szinte bármilyen NPN tranzisztor jó, pl. BC546/547 is.
A Hi-Tech C fordítóval hogyan kell megadni egy #define-t?
Például egy ilyet nem akar megenni, pedig a PICula oldalon is hasonló módon van megadva:
Legújabb verziós a fordító? Mert volt itt valami olyanról szó, hogy ebbe is átrakják a C18-ból ismert jelöléseket és akkor így kellene írni:
Ha nemjó, akkor esetleg próbáld meg így (bár akkor a tiédnek is menni kellene):
Ha egyik sem jó, akkor mutasd meg azt a részt is, ahol használni próbálod.
Ha megprobálom a második WHILE feltételének bárhogyan beírni a define-elt részt akkor ezt a hibát kapom: "undefined identifier "gomb_lent" " Ha gomb_lent()-nek írom be akkor még csúnyábbat, tehát arra jutottam hogy zárójel nem kell utána. Sokféle képpen probáltam megadni a define utáni feltételt, de mindig ezt a hibát kapom, amikor használnám, akkor is amikor úgy probáltam define-elni, ahogy írtam az elöbb. 9.70-es a C fordító, 45 napos PRO próbaverzióban használom, a Pickit2-höz adták
Abban a verzióban még szerintem RB0 kell. Viszont ha zárójellel definiálsz valamit, akkor azt ugyanúgy kell utána is használni. Tehát írd vissza RB0-ra, meg tedd be a while-hoz a zárójeleket, és akkor amit ad hibát, azt írd be ide.
érdekes, most meg működik....
Köszönöm a segítséget! Egy láb nevét hogy tudom átadni egy változóban? milyen tipust válasszak neki? (szeretnék csinálni pergésmentesítő függvényt, hogy ne kelljen annyiszor leírni)
Az a lenyeg, hogy a makroban a sor vegen egy forditott per jel kell legyen (annak kell lennie a legutolso karakternek, sem space sem semmilyen mas kakakter nem lehet utana - akkor tudja a preprocesszor, hogy a makro folytatodik. Lattam mar olyan elvetemult C forditot ahol ez nem mukodik - akkor mas valasztas nincs mint egy sorba irni az egeszet... Masik lenyeges dolog makroknal, hogy a parametereket mikor hasznalod mindig ki kell zarojelezni (tehat az if-ben a dupla zarojel nem veletlen!). Ez azert van, mert a parameterben barmi is lehet. Ne felejtsuk el, hogy a makro egy behelyettesito dolog, tehat ha egy kifejezes van ott akkor az egesz kifejezest behelyettesiti neked a parameter helyen. Hasznalat:
Sziasztok
Ezzel a problémával még nem találkoztam Teljesen új 12F629 szeretem, volna felprogramozni de, nem megy De még törölni sem A Vicsys mester munkáját szeretem, volna meg építeni Bővebben: Link
Az Invalid OSCCAL betegségből ki lehet gyógyítani a Tools menü OSCCAL pontjában.
Szia
Meg próbáltam auto regenerate de nincs váltózás Vagy manuálban kelen, de mint kel neki bealítanom?
Most találtam meg egy régi beírásomat: regeneráláskor az AUX vonalat (a PICkit2 készülék 6. kivezetése) össze kell kötni a PIC RA4/T1G lábával.
Egyébként egy RETLW valami kell neki, ahol valami egy közepes érték (ennek változtatásával hangolható az oszcillátor).
Szia
Akkor neki is álok remélem, segít
Sajnos ez nem segítet
Be tetem egy másik új 12F629 de ugyan az ara gondoltam hogy az előzőt is kinyírtam Más orvosság nincs ere a problémára
Nekem akkor csinált ilyet, ha nem volt üres a PIC és Code protect hex-et akartam rátölteni.
Próbáld meg letörölni és utána programozni.
Szia
Próbáltam törölni ki is írta, hogy kész a törlés, de ha visszaellenőrzöm, hogy üres a pic akkor viszont hibát jelez |
Bejelentkezés
Hirdetés |