Fórum témák
» Több friss téma |
Az nem fér a fejembe, ha egy program jól lefordul, a szimulator alapján is helyesen működik, az miért nem mukodik a valóságban!
Csodák vannak Szoftver hibakeresés kell, A 627-et csak debugger head-dal lehet debugolni, gondolom nincs kéznél, vagy telerakod led villogtatással a programod, vagy csinálsz soros portot, és oda pöfögöd ki az adott programrészlet tulajdonságait..
Én olyat is csináltam már hogy 877-es pic lábait drótoztam az f84-es helyére, és mindjárt lehetett debugolni A programba persze több helyen pic tipustól függő feltételes fordítások kerültek...
1. Pergésmentesíteni kellene a gombot.
2. Ésszerűbben kellene felírni a logikai feltételeket. (ne legyen átfedés, hazárd, pillanatnyi jel)
A szimuláció csak egy durva közelítése a valóságnak, melynek során a számunkra lényegtelennek ítélt (vagy általunk nem ismert) dolgoktól eltekintünk. Ebből adódik is a válasz.
Én akkor hagytam fel az ilyen szimulátorok használatával amikor fordítva történt, a szimulátorban nem működött, a valóságban tökéletesen.
De a programban van olyan funkció is, ha nyomva tartom a gombot, akkor egy LED világít. De az se működik. Tehát itt kiderül, hogy a pergetésmentesítés nem oldaná meg a problémát.
Csinálj egy legalapabb programot (mondjuk egy ledvillogtatót). Ha már az sem megy, akkor vagy a hardver-el, vagy a programozóval van a gond.
Nos... Szerintem hibás a konfiguráció.
Te belső oszcillátort használnál, de a bináris %100 érték helyett decimális 100-at adtál meg:
Én inkább így adnám meg:
A hozzászólás módosítva: Máj 21, 2021
És itt az R6, R7 lábakkal kell valamit csinálni? Pl. +5 V-ra kapcsolni?
Csak azt, amit bármelyik más I/O lábbal. Olvasd el a leírást róluk!
Feladom. Tudtok ajánlani valakit aki akár személyesen, akár telefonon tud segíteni? Természetesen nem ingyen gondolom. Így ez nagyon nehézkes, napi 4-5 órát foglalkozom vele, mindenhol utána olvasok és mindig valami baja van. Ezt így autodidakta módon nem tudom megcsinálni, pedig ennél egyszerűbb program már nem is létezik.
Na neee!
Megnézted az órajelbeállítást? Kipróbáltál egy egyszerű LED-villogtatást? (nyomógomb és megszakítás nélkül) Biztosan jól van bekötve a programozó? Visszaellenőrzés jó?
Igen, az orajel beállítást atirtam. Irtam egy olyan programot, hogy ha a nyomogombot benyomjuk, akkor világít egy led. Ez működik. Jol van bekötve a programozó, szépen kirajzolja, hogy hogy helyezzem be a picet, lerajzolja a mikrokapcsolok állítását és USB csatlakozásu.
A visszaellenorzes hibátlan.
Tehát most már működik valamennyire? Akkor lehet tovább lépni. Jöhet a megszakítás, jöhet a bonyolítás. Mindig csak egy kis lépés. Más is így kezdte.
Csak még egy kicsit tarts ki!
Meg kellene barátkozni az MpLab és MpLabX -ben is elérhető szimulátorral. Benne lépésenként is végrehajtható még a C program is. Alkalmazható töréspont. Ebben az esetben pl. a megszakítási rutinban levő feltételvizsgálat sorára tennék:
Fordítás után indítanám a programot. Ha megáll a törésponton, biztos lehetek benne, hogy érvényre jut a megszakítás. Ha nem áll meg, meg kell vizsgálni a megszakításkérés beállítását. MpLab 8.xx -en megállt a programod ezen a helyen. Sok-sok hiba kideríthető gyorsan és egyszer sem kell hozzá programozni a PIC -et.
Sziasztok! Már napok óta keresem erre az egyszerű programra azt a megoldást, hogy a villogás egy meghatározott ideig, pl. 1 percig menjen. A while ciklussal próbálkoztam, eredménytelenül. Kerestem példaprogramot amit át tudnék írni, de eddig nem találtam. Kérlek benneteket, hogy segítsetek!
Köszönöm a segítségeteket! A hozzászólás módosítva: Máj 24, 2021
Szia!
Használj egy változót, hogy megszámolja, hányszor villogott és az alapján döntsd el, hogy kell-e még villognia ! pl.
Ez így 100-szor 600ms --> 60s ! A hozzászólás módosítva: Máj 24, 2021
Szia Kissi, köszönöm az infót! Erre gondoltam én is, de időben szeretném megadni a villogást.
Szia Kissi! Ha átgondolom, ez is egy jó megoldás! Ha tudom, hogy 1 perc alatt mennyit villog, akkor már a villogási időt is tudni fogom. Még egyszer nagyon köszönöm!
Ez is idő, de Te tudod !
Processzoroknál az idő mindig számolás! Ha Delay-t használsz, akkor valószínűleg nem ismered a Timer-ek használatát, ezért javasoltam ezt a járható utat.
Sziasztok!
Pickit 3 Programmer to go módban csatlakoztatni kell egy külső táphoz. OK. A programozni kívánt eszkösz 500 mA körül vesz fel, így a Pickit 3 nem tudja kiszolgálnli. Ebbeb a módban ha be van kapcsolva az eszköz észreveszi a külső tápot magától?
Pont most csinálok egy cuccost, "beleépített" pickit3-al. Belül a pickit3-ban a hüvelysoron lévő 5V-ot összekötöttem az USB 5V-al, így nem kell külső táp, a pickit is a készülék tápjáról megy.
Persze ha nem garantálható, hogy egyidőben a PC usb-be is be van dugva, meg a készülék is be van kapcsolva, kell egy schottky dióda is, ne vesszenek össze az 5V-ok... Én direktbe kötöttem, nálam a prg feltöltéshez a pickit3-at ki kell venni a cuccosból, és úgy dugni az USB-re.
Azt nem tudod esetleg az Mplab miért nem látja a Pickit 4 et a Programmer to go fülön? Csak a pickit 3 at. Mert annál nem is kellene külső táp.
Az mplabx ipe 5.30 látja a pk4-et togo-ban, az 5.10 ipe menüjében nem látok togo-t.
Az mplabx 5.10-ben nálam is szürke a togo menü, és érdekes módon pk3 van benne, pedig pk4-van programozóként választva.
Szóval minimum 5.30 kell
https://www.chipcad.hu/hu/news/2019/november/mplab-pickit-4-mr-prog...--2353 A hozzászólás módosítva: Máj 31, 2021
Sziasztok!
Kezdő vagyok PIC-ben, ezért fordulok hozzátok. Nincs itthon PICKIT égetőm sajnos, de szeretnék a PIC16F887-re (csak a csip van meg, oszcillátorom ,kondenzátoraim vannak, bredboardon kellene összerakni) feltölteni a HEX-fájlomat. Azt az MPLABX-ban készítettem, PROTEUS-ban szimuláltam, ott jónak tűnik. Van itthon USB-to TTL átalakítóm, ha jól emlékszem azzal is kell küzdeni kicsit, de azt megoldom. Több videót láttam, amiben ATmega 328-ra küldik fel az adatokat, de ott mintha bootloader-t tettek volna fel. Kérdésem: -Fel lehet egyáltalán tölteni a HEX fájlt az RX-TX lábak segítségével? (Szerintem igen, hiszen valahogy csak fel küldi a PICKIT-is) Ha az ASM kódból a MPLABX legenerálta a HEX file-t, configgal, mindennel akkor annak mindenféle boot-loader nélkül mennie kellene, ha sikerülne feltölteni az RX-TX lábakon. Jól gondolom? Tudtok olyan leírást ahol ezzel a módszerrel (PC->USB to TTL-> PIC) töltik fel a programot? Ha minden igaz van valami WinPic program, amit használhatnék, de mielőtt nekivágnék inkább érdeklődök.
A PIC-be, és az Atmega-ba is csak abban az esetben fogod tudni feltölteni a HEX fájlt egy sima USB-soros átalakítóval, ha valaki már beletette a bootloadert. A gyári üres állapotú chip-be csak valamiféle programozóval (pl. PICKIT) fogsz tudni írni.
A hozzászólás módosítva: Jún 1, 2021
Köszi!
Azt még megnézem, hogy nekem pontosan milyen van itthon, de attól tartok sima USB-TTL átalakító. Arduino-val meg meg sem próbáljam igaz?
Ha van kéznél Arduino, akkor azzal lehet próbálgatni. Két programot is találtam, a PIC16F887 mindkettőben támogatott.
Ennek az előadásnak a végén leírtam, hogy én hogyan csináltam az interneten talált programokkal a PIC12F683 és PIC16f690 felprogramozását (egyik nóvum a 9V-os elem használata, amely szükség esetén az Arduino 3,3V-jára ültethető): - Ez az első változat. - Ez pedig a másoik változat. Velem ellentétben neked nem kell módosítani a programokat. Megjegyzés: az elmúlt évek során a programokat már lehet, hogy módosították/továbbfejlesztették. A hozzászólás módosítva: Jún 1, 2021
Ez lesz az!
Köszönöm! Megpróbálom összerakni, ha sikerül akkor egy dobozban el is készítem fixre. |
Bejelentkezés
Hirdetés |