Fórum témák
» Több friss téma |
Jónapot mindenkinek!
Most kezdtem el pic18-as szériával foglalkozni, és rögtön az elején probléma adódott.A következőt szeretném megcsinálni:az egész C portot kimenetté szeretném tenni, és "1"-et szeretnék kiadni a lábakra. íme a program: /**includes**/ #include "p18f46k20.h" /**main**/ void main(void) { TRISC=0; PORTC=0xFF; while(1); } /**main-end**/ C18-al fordítom nincs error, nincs figyelmeztetés, és mégsem történik semmi(vagy legalábbis a kimeneteken "0"-a van...)PIC24-el ez simán működött, de itt semmi... ////////// Valakinek valami megoldási javaslata? Akármilyen ötletet szívesen veszek. Előreis köszönöm:Katona Ábel
PIC-Miértek hogyanok topik!
Egyébként oszcillátor megy? Külső/belső? A programban semmit sem látni a CONFIG bitekből? Helyesen be vannak állítva?
Szimulátorban működik, tehát konfigurációs vagy áramköri probléma lehet.
PORTC=0xff helyett LATC=0xff, LAT regiszterrel lehet irni a portra a PORT-al olvasni.
OSC beállítás? Idézet: „PORTC=0xff helyett LATC=0xff, LAT regiszterrel lehet irni a portra a PORT-al olvasni.” Ez így nem teljesen igaz. A teljes PORTC vagy a teljes LATC írása a hardveren pontosan ugyanazt eredményezi. A különbség akkor van, ha csak egy lábat írunk, akkor nem mindegy, mert a módosításhoz a hardver először beolvassa az adott regiszter értékét, módosítja azt a bitet, amit mondunk neki, majd visszaírja az egész regisztert. Na itt nem mindegy, hogy a porton ott levő állapotot(PORTC), vagy amit előzőleg kiírtunk rá (LATC) olvastassa be vele, mert a kettő nem okvetlenül egyezik. Jelen helyzetben biztosan a konfiguráció a probléma, esetleg tápszűrő kondenzátor hiánya. Ha jól látom, konfig megadása nélkül külső RC oszcillátort vár a PIC, vagyis minimum át kell állítani belső oszcillátorra. Ezenkívül lebegő PGM láb vagy lebegő MCLR láb is lehet még.
Szerintem is konfig.
Nézd át a használandó lábak egyéb funkcióit. 18F1320-nál pl alapértelmezetten az AD lábak analógként resetelődnek. Ha simán DI/DO-ként akarod használni, akkor át kell állítani a program elején.
Én már megnéztem, PORTC-n nincs semmi analóg funkció a 18F46K20-on.
Amúgy minden PIC-re igaz, nem csak a 18F1320-ra, hogy az ADC és a komparátor lábak resetkor analóg módba billennek. Ez egyszerű elővigyázatosság, mint ahogy induláskor a TRISx bitek is bemenetté vannak állítva, nehogy két kimenet szembekapcsolódjon az áramkörben.
Köszönöm mindenkinek a megoldási javaslatokat!
A problémát nem sikerült +oldani(bár több mint valószínű hogy hardveres probléma volt) mert inkább a pic24f16ka102-est fejlesztettem amivel ugyanez volt a probléma.Azt ma sikerült megoldani, azóta nagyszerűen működik.De amint megycsinálom a pic18-at is írok(hogy mégse legyen hiábavaló a problémamegoldásotok ) Katona Ábel
Üdv!
Van egy pic18f27j53 -s mikrovezérlőm töltöttem rá bootloadert hogy usb-n keresztül is tudjam programozni (konkrétan innen a mikroC-set tölttöttem rá http://www.libstock.com/projects/view/55/microchip-hid-bootloader-t...tested). A bootloader feltöltése sikeres volt, vagyis mikroc-ben megírt progit simán feltudom rá tölteni usb-n keresztül, a gond ott kezdődik hogy a feltöltött program nem fut a mikro vezérlőn. Valaki tapasztalt már ehhez hasonlót?
Van valami visszaellenőrzés, hogy biztosan sikeres volt a rátöltés? Ha igen, akkor lehet hibás maga a program, amit rátöltenél Próbáltad egy láb egyszerű kimenetre kapcsolásával és annak billegtetésével?
add vissza jelzést hogy sikeres a feltöltés és csak egy led villogtatós programot töltöttem fel hogy teszteljem minden oké de az se megy
Annak figyelembevételével fordítottad a kódot, hogy majd utána bootloaderrel lesz feltöltve és futtatva?
konkrétan ezt a kódot fordítottam le és utána töltöttem fel
void main() { ADCON0=0xff; ADCON1=0x0f; TRISC=0x00; while(1) { PORTC=0xff; delay_ms(500); PORTC=0x00; delay_ms(500); } } az a gond hogy most foglalkozok először pic18-sal azelőtt csak AVR és pic-16-st programoztam és még tanácstalan vagyok ezzel hogy mi lehet a gáz Tanárom azt mondja konfigurációs hiba de kipróbáltam pár ajánlott konfiget és azzal se ment |
Bejelentkezés
Hirdetés |