Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
sziasztok
A nulláól a robotokig 1. részében két JDM van a. másodiknál a PIC lábkiosztása nem egyezik a PIC16F877-ével Tudnátok segíteni?
Igen! Olvasd el ezt az írást!
Egyébként tényleg nem egyezik, mert ott egy 18 lábú PIC /Pl.: 16F628, 18F1320/ lábkiosztása szerepel.
Nem tudnál esetleg egy jó MPLAB-ot mert én a megadott helyrűl nem tudom letölteni.
Honnan nem jön le? A Microchiptől?
Kicsit nagyobb önállóságot!
Ezt se engedi ,nem értem. Az én számítástechnikai ismereteim kimerülnek a Wrld és a Paint használatában.
Nekem jó a link.
Esetleg próbáld meg ezt: http://www.microchip.com/mplab/
18F4550 eepromjába szeretnék írni, adatlap alapján próbálkozom C18-ban.
Sajnos nem működik, kiolvasáskor végig 0xFF-et kapok. Ezt a két függvényt írtam:
Hol rontottam el?
Szia gyengus,
Nem az EEIF-et, hanem a WR-t kellene tesztelni, hogy az iras megotrtent-e mar.
Szia trudnai!
Az adatlap 105. oldalán van egy táblázat, abban ezt írja: EEIF: Data EEPROM/Flash Write Operation Interrupt Flag bit 1 = The write operation is complete (must be cleared in software) 0 = The write operation is not complete or has not been started Ezért ezt a bitet figyeltem. (most nézem: interrupt, vagyis megszakítást generálna az írás végén?) Köszi a tippet, kipróbálom WR teszteléssel!
Nem akarok gonoszkodni, de akkor minek neked az MPLAB? Remélem nem a PIC-es topicban akarsz számítástechnikai kérdéseket felsorakoztatni, mert az MPLAB tisztán ilyen felület. Nem biztos, hogy jó irányból közelíted meg a PIC világot.
Igen, ha megnezed az example 7-3 -at az adatlapban (Data EEPROM Refresh Routine) akkor ott lathato ok hogy hasznaljak. A WR bit csak 1-be allithato, az szoftveres uton nem torolheto, viszont iras befejezesekor az torlodik - ezt kellene figyelni.
Van par mid-range-es PIC amiben az EEPROM modul hibas es ott ez nem mukodik, ott interrupttal es sleep uzemmoddal szoktak a hibat kikerulni, de ugy tudom egyetlen 18F sem tartalmazza ezt a hibat - ha nem megy WR figyelessel sem akkor erdemes esetleg azert atolvasni az Errata doksikat is.
Sajna így se jó. A refresh routine-t is néztem.
A C18 egyik súgójában (hlpC18ug.chm) találtam egy példát, aszerint se működik
Működik. Elnézést kérek!
Ez már nekem is fáj: nem a megfelelő változót írtam az eepromba
Nem 100%, hogy ez segít, de én az adatlap ajánlása szerint, először a címet és az adatot tölteném be, és csak utána engedélyezném az EEPROM írását(WREN).
Szimuláció során megérkezik a subrutinba a cím és az adat rendesen? A megszakításokat(GIE) elég a EECON2 akciói előtt törölni, és engedélyezni kell a WR bit beállítása után. De ez is csak részletkérdésnek tűnik.
Köszi, előrébb raktam őket.
Még nem megy a simulálás, inkább kiíratom a kérdéses változókat. De már működnek a függvények.
Közben látom hogy sikerült, csak megy az F1- és elég hosszan írtam a választ!
Akkor valószínű, hogy az első saját verzió is működik.
Nekem senki sem tud segíteni a konfigurációs bitekben??? Ezzel a százméteres programkóddal elnyomtad a picinyke hozzászólásomat
Sziasztok!
Segítséget szeretnék kérni PIC programhoz. Az lenne a kérdésem hogy hogyan tudok egy meglévő char típusú változóhoz hozzáadni egy következő karaktert? Ákos
Nem teljesen világos, de most akkor egy sztringet szeretnél tulajdonképpen ? És milyen nyelven programozol ?
CCS programozási nyelvet használok. Végül is egy sztriget szeretnék. PIN -kód-os riasztóhoz lesz.
Továbbra is nézegesd a ccs kezelői leírását is! A standard string függvényeknél lesz.
Én ugyan hitech c-t használok de talán menni fog ccs ben is. A lényeg hogy a char változó csak 1 karaktert tud tárolni, ezért egy karakter tömböt kell erre használnod, ha stringet akarsz benne tárolni.
pl: igy deklarálhatod: char timestring[]="00:00:00"; ekkor letrehoz egy akkora tombot amiben elfér a fennti szöveg, es persze bele is irja. vagy akár így is lehet: char timestring[15]; majd így irhatsz bele pl: strcpy(timestring,"HMM3"); vagy hivatkozhatsz a karakterekre is: timestring[0]='a'; Ezek mondjuk eléggé alap c programozási dolgok, talán ajánlott lenne egy c könyvet elolvasni.
Ez lenne a helyes beállítás, ahogyan szeretnéd (belső oszcillátor):
11111100011000
Köszi! Akkor végülis jól gondoltam. Biztos a PWM beállításokkal lesznek gondjaim...
De azt ugye látod, hogy ez a kiemelt kódsorozat nem egyezik meg azzal, amit korábban te beírtál? Amikor átnéztem az általad beírt bináris számsorozatot, kiderült, hogy nem is belső oszcillátorra volt állítva a PIC, hanem RC oszcillátorra, ami nem egyezik meg a belsővel!
Igazad van, én megint elnéztem, pedig koncentráltam. Ilyen ez a fáradtság. Egyébként most, hogy így segítettél, már szépen működik a PWM jelem és a kis LED-em fénye folyamatosan megerősődik, aztán szépen lassan kihúny...és így tovább. Tök jó
Közben rá is jöttem, mit néztem el. Szóval így utólag jöttem rá, hogy mire való a konfigurációs szó, hiszen eddig csak példaprogikkal próbálkoztam. Mivel ez nem működött, összehasonlítotam egy régi működővel. Arra rájöttem, hogy a 4. bitet 1-re kell állítani és annak annyira örültem, hogy a 0. és 1. bit 0-ra állítása szépen kimaradt, mert az átírt kódot kevertem a jóval. A lényeg, hogy már működik és meg is értem amit csinálok! Köszi!
Szia googa,
Nem egeszen ertem, hogy miert bajlodsz a binaris dolgokkal mikor az INC file-ban ott vannak a nevesitett definiciok - azokkal nehezebb elszurni a beallitast |
Bejelentkezés
Hirdetés |