Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Koszonom a sok informaciot, es az idot, amit ram pazaroltal !
Én első körben optocsatolós megoldásra gondoltam volna, tranzisztorost nem ismerek...
Ne haragudj, de mi köze a kérdésemnek a pic égetési hibákhoz? Én azt kérdeztem, milyen az az égető amit linkeltem. Legalább annyi köze van a kérdésemnek ehhez a topikhoz, ha nem sokkal több. Kössz, hogy ki törülted.
Mellesleg ha meg nézted volna a linket, láttad volna, hogy föl volt sorolva az összes pic típus is, amit lehet vele programozni.
1. Nem linkeltél semmit
2. Pickit2 az PIC-hez való, nem AVR-hez, így teljesen felesleges amiatt szidni, hogy nem tudja valamelyik AVR-t égetni. Ha AVR-t akarsz égetni, akkor ahhoz való égetőt keress, és ezt az AVR-es témákban keresd. Esetleg írj annak, aki a Pickit2-höz az AVR támogatást írta.
Megnézték volna, csak az a gond, h nem linkeltél semmit...
Ráadásul a PICKIT2, (és gondolom a klónok is) mint a nevében is van, csak PIC programozásra 'alkalmasak'. Az AVR a 'konkurencia' (ATMEL) terméke... Affene, potyo gyorsabb volt...
Most már nem tudjuk meg, hogy volt-e link. De akkor itt van megint. Hátha valaki ismeri és tud róla mondani valamit.
Bővebben: Link Ez lenne az az e-bay-ről.
Nem semmi! Engem is érdekelne...
Fel van sorolva, hogy mihez használható. A fel nem soroltakhoz pedig nem jó. PIC-hez nem ajánlom. Inkább PICkit2 vagy PICkit3! Ezt a topikot kár offolni vele!
Már többször belinkeltem: PICKit is great ...
És még valami erről az oldalról: Idézet: „AVRDUDE supports pickit2 with the appropriate patch. There is a pickit2 patch at http://savannah.nongnu.org/patch/?7184” Idézet: „MPLINK 4.38, Linker Copyright (c) 1998-2010 Microchip Technology Inc. Error - file './Forrasztoallomas III.o', section 'PGM', Symbol '_PGM_0500' is not word-aligned. It can not be used as the target of a call or goto instruction. Errors : 1 Link step failed. ” Ez mit jelent?
Szia!
A lényeg: Idézet: „Symbol '_PGM_0500' is not word-aligned.” A 18F -ek csak szóra igazított (word aligned) kódot tudnak végrehajtani.
És az mit jelent? Mit rontottam el a kódban?
Szia!
A _PGM_0500 szimbólum értéke páratlan... Sok helyről származhat: - linker script, - értékadás, - táblázat megadása, - elírás, - túl összetett a kifelyezés, amit a linkernek kellene kiértékelni..
org-ot nem tetél a kódba? Csak páros lehet...
Szia!
Szisztematikusan kitöröltem 1-1 részt a programból és rájöttem hogy mi nem tetszik neki. Az időzítő rutinok amiket egy weboldalon generáltam magamnak. Ha ezt kitörlöm, akkor lefordítja a programot.
Azt hiszem a goto $+1-el lesz baja. Mindegy, generáltam egy másik programmal időzítőrutinokat és azokkal jó.
Látod ezért nem szabad $-os gotot használni sehol, hiába egyszerűbb, mint címkéket létrehozni! Tudom, hogy nem te írtad, csak a tanulságot vontam le!
Nem beszelve arrol, hogy 18F-en ha ilyen kicsiket ugralsz, akkor jobban jarnal BRA utasitasokkal inkabb, mert GOTO eseteben meg a $+2-vel is gondba kerulhetsz ha ket szavas utasitasokkal van tele a rutinod... no persze meg pazarlas is a program teruletet illetoen...
Tudom tudom, de mondom hogy ezt nem én írtam hanem generáltam.
Megint elakadtam, most a CCP modullal. Korábban ez így működött PIC18F25K80-on:
Most annyi a különbség hogy három PWM kimenetet szeretnék használni és nem a TMR2-vel hanem a TMR4-el (illetve nem PIC18F25K80-ról van szó hanem PIC18F26K80-ról de ugyan az a kettő):
De semmi nincs a kimeneten szkóppal nézve. Bemásoltam a fentebbi, korábban már működő kódot de most az sem jó.
Sziasztok
Adott egy dsPic30f6012A. Van rá egy eddig normálisan futó programom, ami most valamiért mindig Default Interruptot generál . Találkozott már valaki ilyennel? Esetleg hardware hiba lehet? Köszi előre is az 5leteket, üdv
Szia!
Milyen megszakitas generalodik? Azt kellene eloszor kideriteni. Ha a programodon nem valtoztattal, akkor elso korben hardver altal generalt megszakitasokat vizsgalnam. De amugy az is siman lehet, hogy eddig a veletlen folytan nem kerult olyan allapotba a programod ami elohozta volna az addig is benne rejlo hibat (pl matematikai muveletekbol szarmazo hibak, vagy stack tulcsordulas stb). Szoval kellene tudni a megszakitas forrasat, es onnan kibogozni mi zajlik ott le.
Szia!
Utánanéztem, nem teljesen értem mit csinál ez de beállítottam 0-ra és 1-re is az ODCON regiszter CCP2OD, CCP4OD és CCP5OD bitjeit is, semmi változást nem tapasztaltam egyik esetben sem.
Köszönöm az ötletet.
Végignéztem a megszakítás jelzőbiteket és megtaláltam mi a felelős a hibáért. Az UART RX megszakítás nem volt lekezelve (nem használatm), de engedélyezve volt és valószínű hogy bekapcsolásnál megszakítást generált. Miután kikapcsoltam már megy rendesen Köszi&Üdv.
Sziasztok!
Egy kis segítséget szeretnék kérni elakadtam, már egy pár napja kínlodok azzal,hogy vezetéknélküli kommunikációt (USART-tal) akarok létrehozni két db PIC16F877 között. Már félsikernél tartok,de találtam két hibát amire nem tudok rájönni, hogy mi okozhatja, az egyiket már megfejtettem, sejtem mi lehet a hiba csak nem tudom hogy kéne kiküszöbőlni. Ezért kérek segítséget tőletek. Az egyik hiba amire még nem jöttem rá az, hogy amikor le szimulálom a két programot proteussal akkor működik tökéltesen, viszont a valóságba már nem úgy működik ahogy kéne, 5 byte-os csomagokat küldök (Start,manc_kod_h,manc_kod_l,Paritas,Stop), és amikor vissza dekódolom az egészet akkor nem azt kapom amit kéne (a kódoló és dekódoló programrészletet többször le ellenőriztem, az tökéletes). És ezt nem értem a szimulációban jó viszont a valóságban nem, pedig egy kis programmal leellenőriztem hogy sikeresen megérkezik-e az adatcsomag és az sikeresen megjön (a valóságban), ugyan ezt a programot felhasználva beillesztve a dekódoló program részlettel már nem jó és nem tudok rájönni mitől van ez. A másik hiba az, hogy véletlenül resetelem a vevo PIC-et és olykor a normálisan fut és van amikor beragad a megszakítás kezelőbe, erre már jöttem mi szerintem USART jelzőbitjét kéne valahogy törölni de sehogy se sikerül. A mellékelt fájlban vannak a lényeges program részletek, assembly-ről van szó. Remélem tud valaki segíteni. Segítséget előre is köszönöm! smrtln
Egyreszt a megszakitas kontextus mentese nem jo, a STATUS es W vissza allitasat SWAPF-el kellene megcsinalni.
Masreszt a logikaja sem tetszik nekem, nem kellene a megszakitasbol varakozni, hanem csak lekezelni a megszakitast -- majd ha jon meg ujabb adat akkor ujra generalodik neked megszakitas. A lopgikanak kb olyannak kellene lennie, hogy van egy buffered es egy buffer szamlalod. A Bufferedet a megszakitas tolti fel, es noveli a szamlalot a beerkezett karakterekre, majd vissza ter. Jon a kovetkezo karakter, ujabb megsakitas, bufferebe bepakolja a kovetkezo karaktert, szamlalo novel, visszater. Stb stb stb. Es kint figyeled a szamlalot, mikor elerte az 5-ot akkor kiolvasod vagy csinalsz vele amit csak szeretnel, es torlod a buffert es a szamlalot. Nyilvan a megszakitasban le kell tudni kezelni a buffer tulcsordulasokat, es termeszetesen a megszakitast kivalto jelzo biteket is torolni kell ahogy azt az adatlap is eloirja.
A két PIC között milyen hardver köti össze a vonalakat? Milyen távol van egymástól a két PIC?
A vételi jelzőbit akkor törlődik, ha kiolvasod a bejövő regisztert. A hibabitek(túlcsordulás bit) pedig akkor, ha ki-be kapcsolod az USART modult. Én is azt mondom, hogy megszakításban soha nem várakozunk. A mentéseket nézd meg az adatlapban, hogyan kell, van konkrét példa! |
Bejelentkezés
Hirdetés |