Fórum témák
» Több friss téma |
Sziasztok! Utolsó próbálkozásként vettem egy új PIC-et, amit még nem "próbáltam agyon". Feltöltöttem Vicsys teszt programját, majd ráadtam a tápot és egyből beindult. Ezen fellelkesültem, nekiláttam tesztelni. 5-6 alkalommal bekapcsoltam a tápot, majd ki, aztán egyszercsak abbahagyott mindent, nem villogott, nem reagált semmire. Újraprogramoztam, kipróbálgattam az eddigieket, semmi. Az égető felismeri, nem hiszem, hogy tönkre ment, de valami tuti nem kóser. Megpróbálok egy klónt szerezni olcsón, mert már nincs több ötletem.
icserny kolléga fentebb megmondta a probléma nagyon nagy valószínűségét. Ennél a példánynál ezt én is tapasztaltam, de nem dobtam ki. Később mikor a Pickit2- re vetemedtem, helyre tudtam állítani. Van egy olyan lehetőség hogy OSCCAL regeneration. Ha azt megcsinálod nagy valószínűséggel mindegyik darabod jó lesz.
Nézelődtem, szerintem erre keress a google-ben 12f629 osccal regeneration. Én ezt találtam:osccal
A hozzászólás módosítva: Szept 24, 2012
Igen, kidobni én sem dobtam ki egyet sem. (azt sem, amit a jelen égetőm nem ismer fel, pedig az már esélyesebb a kidobásra...) Nem akartam költeni rá, mivel ritkán lesz használva, de úgy fest, a jelenlegi nem fog megfelelően kiszolgálni. (félreérts ne essék, könnyen lehet, hogy a régi gép és az LPT port a ludas, de ezt nem tudom kinyomozni) Most keresek egyet készen, illetve olyan emberek segítségét várom, akik összeraknának egy ilyet - persze nem ingyen. (annak nem látom értelmét, hogy egy égetőhöz való PIC-et egy olyan égetővel programozzak fel, ami valószínűleg nem működik rendesen és ezt váltaná fel az új programozó... ördögi kör )
Köszönöm az eddigi segítséget mindenkitől!
Köszi, ezt meg fogom nézni.
Idézet: Szerintem a mostani programozóval is fel lehet éleszteni a mikrovezérlőt, csak egy értelmes RETLW utasítást kell írni a programmemória végére:„Később mikor a Pickit2- re vetemedtem, helyre tudtam állítani.”
Az óra nem lesz pontos, de legalább működik... Szerintem ezt (0x3480) még a hexa alkalmazói program végére sem túl nehéz beszerkesztni a Notepad Editorral. A hozzászólás módosítva: Szept 24, 2012
Szia!
Annak, hogy a W-be beolvasod az intcon regisztert, semmi hatása és értelme sincs. A tmr1 új idejénél beírása igen kicsi időt vesz igénybe.A megszakítások sem akadnak össze, csak megfelelően kell kezelni őket, Ha a tmr1 megszakítását figyeled, és befut egy másik is ez alatt, akkor a megszakítás után azonnal új megszakítás kezdődik. A főprogram "kiakad" ha nincs jól lekezelve. A több megszakításos programoknál én úgy járok el, hogy a W és status mentése után a legfontosabb megszakítást helyezem előre, 1 bitvizsgálat és megy továbbira ha nem ő okozta, és így sorban... Ha ő okozta lekezelem a jelzőbitet ,( lehetőleg törekszem egy saját bit bebillentésére, a többit elintézi a főprogram így a legrövidebb..) elvégzem az adott prg. részletet, és megyek a további megszakítás jelzőbiteket vizsgálni. ez további 3 megszakításnál max. 9 utasításciklus, ami rövidebb mint visszamenteni a regisztereket és ujből belépni a megszakításba,mert automatikusan úgyis ez következik majd.Tehát az rfm12 adómodul még ha 433MHz -es is akkor is az adás szünet aránya 1:10 körül van, bőven van idő még négy szervo lekezelésére is.Csak akkor tudok vagy tudunk segíteni, ha felteszed ide a programodat, vagy részletét, vagy legalább a logikai sémáját... Megoldás lehet, hogy az adó 20mSec időközönként adja azt a pár adatot, a vevő pedig vétel után ellenőrzi az adat helyességét, ha jó új értéket ir a szervo időbe, ha rossz eldobja (marad az előző) és ezután kiteszi a szervora ha lejárt az 1-2mSec idő a szervo aktív ideje a vevő várja a kovetkező adatcsomagot. Ekkor van mindenre elég idő.. üdv:Foxi
Szia!
Idézet: „Az FSR regisztert ha nem mentem az milyen galibákat okozhat?” Ha a megszakítási rutin nem változtatja meg, akkor semilyen galibát nem okoz. A mentések során mindazt el kell menteni, aminek a megváltoztatása nem volt célja a megszakítási rutinnak, de a célok elvégzésére fel kellett használni (W, stb), vagy az elvégzett műveletek elrontják az értékét (STATUS). A visszatéréskor a kontrollernek ugyan abban az állapotban kell lennie, mint a kérés pillanata előtt - leszámítva a szándékos állapotváltozásokat és a mentési regiszterek tartalmát (amibe mentjük az értékeket).
A programom felépítése: 64-es előosztásban a Tmr0, Rb0 megszakítás 1-re. Az Rb0 megszakításban méri Tmr0-át, értékei ha 1ms- nél több 1,2ms nél kevesebb, akkor az a start, onnan ha 620us nél hosszab 1 ha nem 0 ,ez van 32 biten keresztül. Közben ha nem jön jel akkor Tmr0 megszakításban törli az addig regisztrált adatokat. És van kint egy lcd kezelő ahol az adott értékeket nézem. A programot feltenni azért nincsen értelme mert teli van makróval, és legalább annyira kesze-kusza mint a mellékelt képek. Ez átmeneti ,de még nem lesz kész addig szükséges, azután igényesebb formája lesz. Nem lesz rajta az lcd meg semmi, ez ilyen fejlesztési kellék. Visszatérve, az átvitelem nincsen tökéletesítve. Ezen is dolgoznom kell, valószínűleg az általam fabrikált antennák sem a legtökéletesebbek. Sok a finomítanivaló, de nagyvonalakban minden megy.
Sziasztok!
Nem igazán értem, hogy 10F222 esetén hogyan használjam a timer-t mivel megszakítást nem igazán láttam az adatlapján. Valami ötletet adjatok mert nekem még ez magas.
Nincsen benne megszakítás, de bárhol olvashatod írhatod.
Na pont ezt akartam elkerülni, hogy magam olvasgassam. Nem akartam több helyen is "call timer_0" sort beszúrni.
Nem olyan vészes, nekem is van egy rakat 10f200- am nagyon szeretem őket, a maguk gyufaméreg méretével, nagyon sok dologban használtam őket.
Szia!
Használj 10F320 vagy 10F322 kontrollert, abban már van megszakítás.
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
Nézz be a grafikusrendszerű pic programozás- és a flowcode témába ..
Idézet: Akkor ezen az oldalon kell kezdeni, mert a PIC mikrovezérlők skálája elég széles a PIC10-től a PIC32-ig. „Na a probléma ott van, hogy annyit tudok a pic-ről, hogy PIC .”
köszi a linket, de szerintem nem kell ilyen alaptól, mert írtam, hogy PLC-hez konyítok, és abba is van van több bites.
De! Kell! Én is programoztam Commodore 64-et, 8080-at, Z80-at PCXT-t PCAT-t gépi kódban. Egészen más a PIC.
A hozzászólás módosítva: Szept 25, 2012
Szia!
Még jobb is a helyzet, mint gondoltam... Mivel a TMR0 64-es előosztásban van, nyugodtan vedd ki a megszakításból! Csak indítsd el! Amikor hiba miatt túlcsordul, akkor bebillen a TMR0IF flag , tehát jelzi a túlcsordulást, de nem okoz megszakítást. A főprogramban van idő lekezelni hiszen még 20 megás kristálynál is 3,28msec idő van, több mint 16000 óraciklus a teljes memória is töredéke ennek.Tehát elég a főprogiban a TMR0IF bitet figyelni. Marad az RB0 és a TMR1 . Mivel A magas vagy alacsony szinet 620uS idő dönti el, a timer1 írása 1uS körüli , ez nem okozhat hibát. Minen esetre írok egy megszakítási rutint, hogy a "kesze kusza" programodnak legalább ez a része menjen.
Itt a részlet:
Bennehagytam a tmr0 megszakítást is, de nem kellene... A hozzászólás módosítva: Szept 25, 2012
Lemaradt még, hogy a szervo idő és a szünet idő értékeket helyesen 65536- idő alakban kell tárolni a regiszterekben. hiszen "felfele" számol a TMR1.
Köszi, értem már a dolgot.
Idézet: Ez indifferens abból a szempontból, hogyha nem mondod meg, hogy melyik PIC családdal akarsz foglalkozni, akkor nem tudom, hogy melyikhez ajánljak tananyagot. „szerintem nem kell ilyen alaptól, mert írtam, hogy PLC-hez konyítok”
Ennek működnie kell, de ha nem akkor máshol is van még hiba...
Esetleg írd meg az adó és vevő tipusát, valamint milyen pic-et használsz, és a kasznált kristály frekije is jó lenne. Nem egészséges egyébként 32 bit átvitele 19 mSec alatt. Ha már ilyen komoly dolgot készülsz programozni, akkor érdemes lenne az rfm12bs és frm12bp páros adónak és vevőnek, az adó katalógusszerint 3km hatótávú és kizárható vele másik adó zavarása. Van itt a fórumon ilyen topic.
Ennek működnie kell, de ha nem akkor máshol is van még hiba...
Esetleg írd meg az adó és vevő tipusát, valamint milyen pic-et használsz, és a kasznált kristály frekije is jó lenne. Nem egészséges egyébként 32 bit átvitele 19 mSec alatt. Ha már ilyen komoly dolgot készülsz programozni, akkor érdemes lenne az rfm12bs és frm12bp páros adónak és vevőnek, az adó katalógusszerint 3km hatótávú és kizárható vele másik adó zavarása. Van itt a fórumon ilyen topic. Egyéblént már megint lefelejtettem a kimeneti (szervo portot ) beleírni a programba szünetnél lekapcsolja szervonál bekapcsolja ...
Az adó oldalon egy 16f887 van 4Mhz-es kristállyal a vevő oldalon egy 16f716 van 20Mhz-es kristállyal és egy elég gyenge rr3, rt14-es Am páros. Egy csomag kb 23ms alatt megy át. Az lenne a kérdésem hogy a tmr1 el egyszer szünetelsz egyszer meg a változó jelalakot oldod meg?
A hozzászólás módosítva: Szept 25, 2012
Belinkelem a programot, ha kitudsz igazodni.. meg a fontosabb makrókat.. ( ez a vevő)
u.i. ebben van minden ami nem kell.. azok ki vannak szedve. A hozzászólás módosítva: Szept 25, 2012
A szervo működése ugye,hogy 1-2msec jel után maximum 20mSec idő telhet el. előzően leírtad, hogy 10mSec időnél nem kéne több szünet, tehát a a vevő kristály 20mHz és mondjuk 10mSec szünet esetén: 65536-(0,01/0,0000002)=15536 = 0x3cb0
ez az érték lehet fix ugye nem változik. A szervo ideje.... nos ez a te feladatod, a vett adatokból, mivel a tmr1 1 lépése 5.000.000 /sec ezért ide 5000 és 10000 közötti szám kéne, persze figyelembe véve 65536- szám A hozzászólás módosítva: Szept 25, 2012
16F628A <----- jelenleg ilyen PIC-em van itthon egy régi órából való.
Lehetőleg ha egy tananyagot tudnál küldeni, azt megköszönném, de ha nem nagy gond jó lenne magyarul Na és még jó lenne egy házilag összerakható égető is, ha van ilyen rajzod azt is szívesen fogadok > |
Bejelentkezés
Hirdetés |