Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Kár, hogy egy szót sem értettél abból amit írtam, mert én nem az én égetőmről beszéltem, hanem annak élesztéséről, aminek a menete teljesen meg kell egyezzen az említett égető élesztésével.
A BTFSS akkor ugrik, ha a vizsgált logikai állapot magas. Te azt írtad akkor kéne az időzítőre ugorni, ha a szint alacsonyra vált.
cimke2: BTFSC PORTB,0 GOTO cimke2 GOTO cimke Másik hiba, hogy az időzítés végén kell vizsgálni(BCF PORTB,5 után), hogy a gombbot elengedték-e, és ha igen akkor visszaengedni a programot a cimke2-re. Itt a vizsgálat értelemszerűen a magas szint vizsgálata lesz, azaz: BCF PORTB,5 nem_enged BTFSS PORTB,0 GOTO nem_enged cimke2:
Hello kezdő vok a témában de írtam egy progit ami lehet hogy hülyeség egy futófénynek indult nézzen rá valaki lécci h jó e
Már többször írtuk, hogy a PIC elsősorban egy áramkör, nem pedig egy programozói felület.
A lista amit írtál értelmezhetetlen. Nem tudni milyen PIC-re, nem tudni milyen nyelven(C?, amúgy mindegy), nem tudni milyen fejlesztői környezetben íródott. Ezzel azt akarom csak mondani, hogy nagyon messze vagy a helyes úttól, vagy csak én nem látok jól valamit....
bocs szóval PICkit 2 a programozó és az eredeti felylesztő környezetet használom hozzá
szóval ezt: http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nod...023805
Kedves borvendeg!
Nem-e lehetne kérni, hogy az elkövetkezendő időkben kicsit összeszedettebben állj hozzá mindenhez? Sokszor olyan zavaros, amiket írsz, és ahogyan írod, hogy már-már a többiek számára ciki a helyzet... És ez nem csak erre a topikra igaz!!!
Szia Watt! Köszönöm a hozzászólást. Szerintem az én progim uazt teszi, amit leírtálnem? De kétségbeesésemben átjavítottam az általad javasolt utasításokra, az eredmény: ugyanaz.... Gomb felengedése UTÁN adja ki a jelet továbbra is. Lassan beleőrülök... Hát nem lehet ez olyan bonyolult progi....
Ha így kötötted be (ld rajz), akkor működnie kell. (használhatsz belső felhúzó ellenállást is a Port B-n)
Szükség lehet egy olyan 50-100ms körüli delay-re a GOTO Cimke2 utan is, a pergesmentesítésért. Esetleg majd még tiltsd le a komparátorokat, ha nincs rájuk szükséged. (movlw 0x07 movwf CMCON) Itt találsz konkrét példákat is, csak írd át a portokat, ahova a led és kapcs jön: Bővebben: Link
Sziasztok!
Akadt egy kis problémám a Microchip TCP/IP Stack-el. Az a helyzet, hogy helyet foglalok beérkező csomagoknak a következővel: static BYTE vUARTRXFIFO[256]; A linker a következő hibát dobja: .udata_UART2UDPBridge.o' can not fit the section. Section '.udata_UART2UDPBridge.o' length=0x00000128 Ezek a alpján elvileg ugye nem fér a memóriába a tömb, ha lejjebb veszem a bájtszámot, akkor belefér, és gond nélkül lefordul. Nemigazán értem hogy miért nem fér a memóriába, mert a program memóriából 10538/32768 a foglalt, adatmemóriából pedig kb 1060/3968 tehát még bőven lennie kéne helynek. Nincs valami tippetek ez ellen? A sima hyagyományos linkerscriptel linkelek, és egy 18F4620-ról van szó.
Ez nem fejlesztőkörnyezet, hanem programozó. Fejlesztőkörnyezet az MPLAB vagy a CCS fordító.
De aki annyi fáradtságot nem vesz, hogy mielőtt nekifog valaminek, utánaolvasson a dolgoknak, megnézzen példaprogramokat, hogy mégis hogy nézne ez ki, az a továbbiakban ne számítson a segítségemre. Szerintem vannak még itt néhányan, akik egyetértenek velem ebben. Elhangzott a témában már néhányszor, hogy mégis hogyan kellene a dolognak nekiindulni, amennyiben valaki komolyan gondolja. De úgy látszik, manapság az a divat, hogy majd jönnek valakik, akik úgyis kijavítanak. Csak ez egy idő után végetér, és utána magadnak kell rájönni a dolgokra. Aztán ha ez nem megy, akkor nem megy. Olyan ez, mint az egyetem. Van aki egyszerűen nem elég inteligens hozzá. Ha be is fejezné 10 év alatt, akkor sem lenne belőle rendes szakember, csak arra lenne jó, hogy a színvonalat, és ezzel együtt mások erkölcsi és anyagi megbecsülését rontsa.
Még egy kis javaslat:
Lehetőség van még a Makrók használatára, ami pl. a bankok beállításában olvashatóbbá teszi a forrást: MAKRO BANK0 BCF STATUS,RP0 ENDM MAKRO BANK1 BSF STATUS,RP0 ENDM Ha több bankra is át akarsz lépni, akkor kénytelen vagy az RP1-et is állítani, némi memória áldozat árán. Ezért nem szeretem a 16F-eket amúgy, bár a 18F-eknél is néha bankolni kell, csak sokkal ritkábban! BANK0 MACRO BCF STATUS,RP0 BCF STATUS,RP1 ENDM BANK1 MACRO BSF STATUS,RP0 BCF STATUS,RP1 ENDM BANK2 MACRO BCF STATUS,RP0 BSF STATUS,RP1 ENDM BANK3 MACRO BSF STATUS,RP0 BSF STATUS,RP1 ENDM A programlistában már csak az kell beírnod, hogy BANK2 és a fordító beszórja a szükséges két sort.
Közben rájöttem hogy valószínűleg azért nem fér be mert 256 byte-os szekcók vannak, úgyhogy át kell írni a linker scriptet, és megadni hogy oda linkelje.
Szerk: Igen ez volt a megoldás, hiába volt csak 200 byte amit lefoglaltam, úgylátszik mást is akart abba a szekcióba linkelni és nem fért be. #pragma udata és a linker script átírása után mostmár lefordul.
Az a fánya A!
Mi különbség van egy pic-nél az A és a Sima változat között? Volt egy leírásom, nyákterv minden, hex file, csak a anyákot átalakítottam, de csak közelebb raktam pár alkatrészt, meg megcsináltam eagle-vel a nyáktervet, szóval elméletben tök ugyan az ami a leírásban volt egy különbséggel PIC16F628-at használtak hozzá én meg 16G628A-t kaptam itthon, és nem műkszik. Mi a nyüves pontosan az A jelölés, mert ahogy olvasgattam valami önprogramozást jelöl, de hogy hogyan küszöbölhető ki a kettő közötti különbség az leírva sehol nem volt.
Le van az írva, mégpedig a Migration Documents nevű fájlokban. 16F62x-->16F62xA esetén konkrétan itt.
Spec . madzsari leírásra gondoltam, de megnézem és talán ez is jó lesz.
köszönöm szépen! (Egyébiréntam írtam neked levelet az egyik cikkeddel kapcsolatban esetleg olvasd el)
Magyar leírásra ne nagyon számíts az ilyesminél. A migration documents tartalmazza táblázatos formában az eltérések listáját, azután pedig az adatlapokban megtalálod, hogy pontosan mire kell módosítani a programot.
Igen, viszont a gáz az, hogy ez egy amigás egérátalakító, aminek a forrása valami speckó amigás fordítóhoz van buherálva, két include file-al ami a linken található lha fileban még véletlenül sincs meg, tehát annyira újrafordítani nem tudom, de ez persze már az én nyűgöm.
Én nem látok akkora eltérést, hogy újra kellene fordítani. Valami más miatt nem fut a szerintem.
Szia! Teljesen érthetetlen! COPY=> PASTE verzióval másoltam be az MPLAB-ba a javított kódodat és az eredmény uaz.... Amikor nyomógomb lenyom, az RB5 lábon 4,5V jelenik meg és fennál, amíg a nyomógombot el nem engedem. Amikor elengedem, a fesz beáll 5,05V-ra és időzítés lejárta után visszaáll alapba... (Várja az újabb bemeneti jelet) Nem lehet, hogy elektronikai gondom van és nem programozási?? Köszönöm a segítségedet, nagyon sokat tanultam eddig már tőled!
Lehet, hogy kevés az időzítés, tegyél be sokkal többet, vagy szervezd ciklusba, vagy az időzítő rutinban próbálj több időt alkotni.
A másik, hogy a cimke2: elé tegyél be egy várakozást, hogy a prell nehogy bezavarjon. Logikailag mennie kéne!
A nem használt portokat azonban nem kötöttem határozott potenciálra. Okozhat ez ilyen problémát?
Nem okozhat. Az időzítéseket sikerült kipróbálni?
Szaisztok, újabb gondom adódott a PIC-ekkel. Konkrétan az hogy sorosporti kommunikációt kell csinálnom egy készülékkel, ami kapcsoló üzemű tápról jár.
A soros port miatt a földjük közös, és a PIC-em állandóan újraindul ha rajta van a soros kábel. Számítógéppel semmi gondja. Van valakinek ötlete, hogyan lehet szűrni megfelelően, hogy ne induljon újra?
Hát első körben a pic bemenete és a gnd közé tegyél egy 4,7V-os zenert, meg a bejövő jeleddel sorba egy 100 ohm körüli ellenállást. Ha ez nem segít, akkor jöhet a további durvítás: a PIC tápjával is sorba egy 10ohm körüli ellenállást, és 5,1V-os zenert párhuzamosan vele. Majd innen tovább néhányszáz ohmmal a reset lábra, és a reset lábat is 4,7V-os zénerrel megfogni. Persze a perifériákat (pl. ledek) mind a szűretlen táp és a pic lába közé kell bekötni, hogy a pic a gnd-t kapcsolja nekik.
De mondjuk a számítógép is kapcsolóüzemű tápról jár, az önmagában nem kellene, hogy problémát okozzon. Jó lenne látni a kapcsolási rajzot, vagy annak ide eső részletét.
Köszi, a tápban a Zenert és az ellenállást majd kipróbálom. A kapcsolási rajz itt van, annyi a változás, hogy tettem bele még 500µF elkót a táp föld közé, meg 3db 100nF párhuzamosan táp föld közé. Meg a PIC is kapott a lábához 100nF-ot.
Egyébként az a furcsa hogy tegnap este működött rendesen, ma meg már nem.
Watt.... Nem akarom elkiabálni, csak csendben mondom: .....működik....! Valóban hosszabb időzítést használtam és a prellezés miatt némi várakozást iktattam be cimke2 elé.
Nem akarlak fenyegetni, de hálám a végtelen világűrön át is üldözni fog! :yes: Azontúl rengeteget tanultam tőled és természetesen a többi hozzászólótól is! Köszönöm a segítséget!
Nincs mit, én is örülök, hogy működik! Legalább Te jelezted, hogy sikerült!
|
Bejelentkezés
Hirdetés |