Megválaszolatlan hozzászólások | Aktív témák Pontos idő: csüt. márc. 28, 2024 19:41



Hozzászólás a témához  [ 6770 hozzászólás ]  Oldal 1, 2, 3, 4, 5 ... 136  Következő
PIC kérdések 
Szerző Üzenet
gyémánt tag
Avatar

Csatlakozott: hétf. jún. 23, 2008 14:30
Hozzászólások: 1274
Tartózkodási hely: Hódmezővásárhely
Hozzászólás Re: PIC kérdések
Itt tanultam a PIC programozását: http://kapcsolasok.hu/pic-iskola
Ez nagyon jó néhány egyszerű programhoz, de most már szeretnék egy RGB LED vezérlőt is készíteni. Ezen felől zavar, hogy csak akkor tudom használni a gombot, ha lement egy programrész. Szeretném megtudni, hogy lehet-e valami módon szabályozni a LED-ek fényerejét, és hogy van-e megoldás arra, hogy bármikor használhassam a gombot?


szer. jún. 22, 2016 20:09
Profil Privát üzenet küldése
arany tag

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 102
Hozzászólás Re: PIC kérdések
Értem, akkor majd arrafelé keresgélek szükség esetén. Kösz mégegyszer!


kedd ápr. 15, 2014 22:46
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 3691
Tartózkodási hely: Ada
Hozzászólás Re: PIC kérdések
Tényleg, nemis figyeltem a dátumot :mrgreen: Csak jött értesítés valami hozzászólásról, aztán láttam, hogy van itt is olvasatlan.

Amúgy valami olyan volt, hogy egy jó ideig nem működött a fórum, aztán átkerült ehhez a wikitech-hez, és újraindult, de a társaság nem jött vissza. Hobbielektronika.hu-n vagyunk aktívak elég sokan, akik itt voltunk.


hétf. ápr. 14, 2014 18:22
Profil Privát üzenet küldése Honlap
arany tag

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 102
Hozzászólás Re: PIC kérdések
Köszi szépen, közben sikerült megoldani, de igen, így, ahogy írtad. Azt hiszem a következő napon összejött végre. Azóta eltelt 8 hónap. :) Mi történt, régen olyan nagy élet volt itt? Emlékszem, hogy Watt és Te segítettetek a legtöbbet nekem...

Azóta nem foglalkoztam PIC-el, de holnap érkezik egy 12F683-as példány. Ezt még sosem használtam, remélem menni fog de, ha elakadok lehet, hogy kérdezek is. Köszönöm előre is, ha ide nézel néha! :)


hétf. ápr. 14, 2014 17:08
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 3691
Tartózkodási hely: Ada
Hozzászólás Re: PIC kérdések
Teszel a kód elejére egy ORG 0x08-t, és utána teszed a megszakítási rutint.
Kód:
  ORG 0x00  ;  reset után itt indul a program
  GOTO FOPROGRAM

  ORG 0x08  ; itt kezdődik a megszakítási rutin
  ; magas szintű megszakításnál nem kell menteni a WREG, STATUS és BSR regisztereket, azok mentve vannak hardveresen
  ; egyéb regiszterek mentése (FSRx, PRODH, PRODL, stb.), amennyiben kell

  BTFSS INTCON, T0IF
  BRA ISR_VEGE
  BCF INTCON, T0IF
  ; itt csinálod, amit akarsz

ISR_VEGE
  ; regiszterek visszaállítása itt, amennyiben kell
  RETFIE FAST  ; WREG, STATUS és BSR hardveres visszaállítása, és visszatérés a főprogramba

FOPROGRAM
  ;  ide kerül a főprogram


Ezt most csak fejből írtam, de valami ilyesmi


A hozzászólást 1 alkalommal szerkesztették, utoljára potyo kedd ápr. 15, 2014 9:17-kor.



hétf. ápr. 14, 2014 7:55
Profil Privát üzenet küldése Honlap
arany tag

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 102
Hozzászólás Re: PIC kérdések
Sziasztok!
Jó rég jártam itt...
18f2320-as PIC-et használok és az a célom, hogy Timer0-val hozzak létre megszakítást. A Timer0-át sikerült beállítanom, legalábbis a T0if állapotát lekérdezgetve működik. A globális megszakítást és a Timer0 megszakítást engedélyeztem (a GIE és a TMR0IE 1-re van állítva).
Kérdésem az, hogy most hogyan, hová kell elhelyeznem azt a programrészt, amit a megszakításkor szeretnék futtatni? Sajnos eddig nem jöttem rá, pedig tegnap szinte egész nap ezzel próbálkoztam... :oops:
Esetleg egy néhány soros példát tudnátok írni?

Köszönöm előre is, ha segítetek!

Ja, ASM-ben írom.


kedd aug. 06, 2013 7:47
Profil Privát üzenet küldése
vas-tag

Csatlakozott: hétf. júl. 29, 2013 16:12
Hozzászólások: 1
Hozzászólás Re: PIC kérdések
Tisztelt Fórumtársak!
Segítségeteket szeretném kérni (olvastam van itt olyan aki tanít is) hogy érdemes-e belefogni ennek a projektnek a megvalósításába , működhet-e mi a véleményetek?! Kiváltképen a negatív feszültségmérésre.
ezt találtam: http://www.goldpaka.atw.hu
Köszönöm.


hétf. júl. 29, 2013 16:55
Profil Privát üzenet küldése
arany tag
Avatar

Csatlakozott: pén. ápr. 23, 2004 0:10
Hozzászólások: 463
Tartózkodási hely: Magyarorszag
Hozzászólás Re: PIC kérdések
Pár soros program. Mégsem akar működni megfelelően.
Mindig újraindul a PIC. Hol a hiba szerintetek?

program Usart_Test;

var
txt, delim : string[10];

begin


TRISB := %11111110;
PORTB := %00000001;
Usart_Init(4800);
delay_ms(100);
delim := 'OK';

while TRUE do

begin

if Usart_Data_Ready() = 1 then

begin
Usart_Read_Text(txt, delim);

if (txt[0] = 'K') and (txt[1] = 'B') and (txt[2] = 'e') and (txt[3] = ' ') then

begin
Usart_Write_Text('Kazan Be');
SetBit(PORTB, 0);
end;
if (txt[0] = 'K') and (txt[1] = 'K') and (txt[2] = 'i') and (txt[3] = ' ') then

begin
Usart_Write_Text('Kazan Ki');
ClearBit(PORTB, 0);
end;

if (txt[0] = 'H') and (txt[1] = 'M') and (txt[2] = '?') and (txt[3] = ' ') then
Usart_Write_Text('Homerseklet');
end;
end;

end.

Lehet, hogy a 16F877A-n nem működik az Usart_Read_Text?


kedd márc. 26, 2013 21:21
Profil Privát üzenet küldése YIM Honlap
ezüst tag

Csatlakozott: csüt. máj. 19, 2005 7:24
Hozzászólások: 86
Tartózkodási hely: ÓBecse, Vajdaság
Hozzászólás Re: PIC kérdések
Kellemes napot minden kedves fórumozónak!

Én is hasonló (de lehet hogy semmi köze sincs hozzá) gondal találoztam. Töltögettem egy progit 12f675-ös PIC-ekbe. Egyszer az egyik megmakacsolta magát és bár a Willemet használom az IC-Proggal eggyütt, felismeri a tipusát, kiolvasható a pic meg minden de beirni azt már nem lehet. Ahogy indul a beirás az első cimnél azonnal leáll mert nem azt olvassa vissza amit beiirt. A Bandgap értékét még beirja, megváltoztatja de amikor a memóriába kellene irni csak elszáll, persze a Konfiget már nem is irja be. Utána még találtam hármat ami ugyanigy viselkedik. Eyeken felül ketőt viszönt tökéletesen beirt, visszaellenőrzött. Átnéztem a programozó vasat és nem találok benne semmi hibát, reszettáltam a számitógépet és mindent ami eszembe jutott. Azóta sem tudom azokat az MCU-kat irni. Találkozott valalki hasonló hibával, mert most nem tudom eldönteni elszáltak a pic-ek, vagy csak bezáródtam valami módon vagy mi van. Segitsen aki tud de az is aki nem.

További jó elfoglaltságot és szórakozást!


vas. dec. 11, 2011 9:26
Profil Privát üzenet küldése
ezüst tag

Csatlakozott: vas. aug. 26, 2007 19:42
Hozzászólások: 71
Tartózkodási hely: Kecskemét
Hozzászólás Pickit2 probléma
Üdv
Még nem jártam itt de kezdek ismerkedni a pic el van egy pickit2 programozóm amit eddig sikeresen használtam most jelentkezett egy kis gond vele.
Sajnos a szoftveres részéhez nem nagyon értek a dolognak inkább hardveres vagyok.
A gondom a következő lenne,16f628A szeretnék égetni a csip külön panelon van semmi nincs körülötte a 10 láb földre kötve olvasás törlés rendben írni viszont nem hajlandó.
Végső elkeseredésemben kerestem a netten pár hex et ami 628a ra van írva és elkezdtem kísérletezni a tapasztalat hogy ameik hex kb 8-10 sor volt azt hibátlanul beírja akár többször is
viszont ha a hex hosszabb tehát nagyobb a program akkor egyáltalán nem írja be és hibával leáll.
Találkozott e valaki hasonló gonddal?
A program 2.61 a firmware 2.32 device file 1.62.03


szer. jan. 05, 2011 14:05
Profil Privát üzenet küldése Honlap
gyémánt tag
Avatar

Csatlakozott: vas. feb. 05, 2006 19:53
Hozzászólások: 1170
Tartózkodási hely: Győr
Hozzászólás Re: PIC kérdések
Koszonom szepen. Minden vilagos mar a c nyelvi megszakitassal kapcsolatban.
Masik kerdesem lenne:
Van egy szenzorom ami egy fizikai mennyiseget mer, es a kimeneten a mennyisegnek megfelelo (aranyos) frekvencia jelenik meg(7kHz...9,5kHz), allando amplitudoju negyszogjel formajaban.
Ahhoz hogy egy szabalyozast felepitsek, ki kell ertekelnem a jelet.
Ugy keszitettem el hogy a jelado kimenetet osszekotottem a PIC RB0-as labaval es a jelek detektalasat a megszakitasi rendszerrel inteztem oly modon, hogy elmenti a TMR1 16bites szamlalo allasat, majd megszamol 4db felfuto elt, majd megint elmenti a TMR1 allasat. Ekkor kivonja egymasbol a ket idot, igy megkapom mennyi ido kellett a negy impulzusnak. Ebbol mar tudok kovetkeztetni a vett fizikai mennyisegre.
A 16 bites kivonast egy nemet oldalrol koppintottam, ugy csinaltak meg,hogy a kisebb helyierteken ha atvitel keletkezikmakkor a nagyobb helyierteken a kissebbitendobol (amibol kivonunk) kivon egyet, kozben jelezve, hogy atvitel tortent... (erdekes, hogy mi altalanos iskolabon mi a kivonandohoz adtunk egyet, vegulis az ugyanez)
Szoval a problemam az, hogy a nagyobb helyierteken kapott eredmeny "ugral", neha eggyel tobb, neha jo, neha eggyel kevesebb mint a varhato ertek, de a legnagyobb baj az, hogy fogalmam sincs mi okozza.
Megvaltoztattam a szamolt impulzusok szamat 4-rol 8-ra, de tovabbra is 1-gyel +-ba vagy minuszba teved. Eszerint az impulzusokat jol szamolja, a Tmr1 sem tevedhet, akkor csak a 16bites kivonassal van a baj.
Pedig meg egy osszehasonlito utasitas reszt is tettem a rutin ele,hogy ha carry gyanus (mert a kivonando szam nagyobb es minusz lesz az eredmeny - hisz adodhat az a specialis eset, hogy pont akkor csordult tul a timer ) akkor ne is kezdjen szamolni vele, igy csak a legkedvezobb eseteket nezi. Sajnos ennek ellenere is jelentkezik a hiba.
Megint probalkozhatok majd orakon keresztul annak kitalalasaval, hogy vajon mi hiusithatta meg a pontos eredmenyt a felso helyierteken.


csüt. dec. 30, 2010 5:02
Profil Privát üzenet küldése
arany tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 228
Hozzászólás Re: PIC kérdések
tubybb írta:
Kezembe került egy C nyelven írt pic projekt. Az a baj, hogy ilyet még sosem láttam, és alapvető dolgokat nem tudom hogy hol keressek. Eddig csak assemblyben programoztam PIC-et, C nyelven pedig PC-t, de a kettőt együtt soha. (Na jó assemblyben sem programoztam PC-t)

Már ott kezdődik a gondom, hogy nem találom a megszakítási rutint. Nincs külön jelezve. Assemblyben könnyű mert Org 4h-nál van, de itt, egy olyan programnyelvben, ahol igazából nincs külön címzési rendszer, mert "magasabb" szinten van annál mint hogy ő memóriacímeket használjon...
Halvány lila gőzöm sincs egyáltalán miként lehet egy C nyelvben megszakítási rutint elhelyezni.


Szia,

Hi-TECH C esetében:

void interrupt intHandler(void)
{
//ide kell írni a megszakítás rutint
}

"The function qualifier interrupt may be applied to C function definitions to allow
them to be called directly from the hardware interrupts. The compiler will process the
interrupt function differently to any other functions, generating code to save and
restore any registers used and return using a special instruction."

"An interrupt function must be declared as type void interrupt and may not have
parameters. This is the only function prototype that makes sense for an interrupt function
since they are never directly called in the source code."

Forrás: Microchip HI-TECH C® for PIC10/12/16 User’s Guide DS51865A

"ahol igazából nincs külön címzési rendszer, mert "magasabb" szinten van annál mint hogy ő memóriacímeket használjon" - a valóságnak nincs alapja....

atta


kedd dec. 21, 2010 20:14
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: vas. feb. 05, 2006 19:53
Hozzászólások: 1170
Tartózkodási hely: Győr
Hozzászólás Re: PIC kérdések
Kezembe került egy C nyelven írt pic projekt. Az a baj, hogy ilyet még sosem láttam, és alapvető dolgokat nem tudom hogy hol keressek. Eddig csak assemblyben programoztam PIC-et, C nyelven pedig PC-t, de a kettőt együtt soha. (Na jó assemblyben sem programoztam PC-t)

Már ott kezdődik a gondom, hogy nem találom a megszakítási rutint. Nincs külön jelezve. Assemblyben könnyű mert Org 4h-nál van, de itt, egy olyan programnyelvben, ahol igazából nincs külön címzési rendszer, mert "magasabb" szinten van annál mint hogy ő memóriacímeket használjon...
Halvány lila gőzöm sincs egyáltalán miként lehet egy C nyelvben megszakítási rutint elhelyezni.


csüt. dec. 16, 2010 16:13
Profil Privát üzenet küldése
ezüst tag

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 19
Hozzászólás Re: PIC kérdések
udv mesterek! de reg jartam erre... lenne egy apro kerdesem. biztos volt mar vagy van ra topic de ennyi hozzaszolasban tu a szenakazalban esete.
szoval 16f87x-el szeretnek egyszeru lcd kijelzot meghajtani. eleg a sima karakteres (pl 16x4 v hasonlo). melyik a legegyszerubben vezerelheto? no persze kaphato is? total tajekozatlan vagyok lcd temaban. a conrad honlapjan leltem egy jopar anag vision tipust. de eleg sok labat igenyelnek (ha jol latom 10-et). mondjuk nem gond de legalabb egyszeru legyen a progizasa es illesztese. mit javasoltok?


kedd nov. 23, 2010 22:25
Profil Privát üzenet küldése
ezüst tag

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 58
Hozzászólás Re: PIC kérdések
Régen írtam ide, "csak olvasaás" módban üzemeltem. :)
Viszont most lenne nekem is egy kérdésem.

Nézegetem az újabb PIC-kekben lévő CTMU modult, amivel érintésérzékelést lehet detektálni. Ezt az AD-val kell együtt használni vhogy. Megnéztem a MC-s példákat, stb., de mégsem értem egészen pontosan, hogy ez hogy a francba működik. Azt értem, hogy vmi kondenzátort tölt konstans árammal, mégse világos a működése.
Használta ezt már vki? Ha igen, le tudná írni röviden, hogy működik, hogyan kell inicializálni? Ill. az analóg bemenetre csak magát az érzékelő felületet kell kötni, más passzív, aktív elemre nincs szükség?


pén. szept. 03, 2010 20:31
Profil Privát üzenet küldése
vas-tag

Csatlakozott: pén. júl. 02, 2010 18:53
Hozzászólások: 2
Hozzászólás Re: PIC kérdések
Köszi!!


szer. júl. 07, 2010 11:21
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 3691
Tartózkodási hely: Ada
Hozzászólás Re: PIC kérdések
lindermen írta:
sziasztok!

Alapvetően közöm nincs a témához, egy ismerős kért meg hogy segítsek neki.
A problémája a következő:
Van egy PIC 16C 711-04/P-je, és ezt kellene helyettesíteni. Mely PIC alkalmas erre, illetve hol lehet ilyesmit beszerezni? Kecskemét lenne a legjobb helyileg, aki esetleg ismerős errefelé, talán tud ajánlani valamit.

Előre is köszönöm!

Microchip a 16F716-ot ajánlja helyette. De kétlem, hogy direktben bemenne a helyére, valószínűleg valamit kell módosítani a firmware-en is. Beszerzés: chipcad.hu


pén. júl. 02, 2010 19:11
Profil Privát üzenet küldése Honlap
vas-tag

Csatlakozott: pén. júl. 02, 2010 18:53
Hozzászólások: 2
Hozzászólás Re: PIC kérdések
sziasztok!

Alapvetően közöm nincs a témához, egy ismerős kért meg hogy segítsek neki.
A problémája a következő:
Van egy PIC 16C 711-04/P-je, és ezt kellene helyettesíteni. Mely PIC alkalmas erre, illetve hol lehet ilyesmit beszerezni? Kecskemét lenne a legjobb helyileg, aki esetleg ismerős errefelé, talán tud ajánlani valamit.

Előre is köszönöm!


pén. júl. 02, 2010 18:58
Profil Privát üzenet küldése
ezüst tag

Csatlakozott: szomb. dec. 15, 2007 22:32
Hozzászólások: 14
Tartózkodási hely: Nógrád megye
Hozzászólás 
Szia T68m !

Köszönöm a segítséget. Az adattábla megoldása tényleg egyszerűbb a Te módszereddel. Alkalmazni fogom.
Ez a lapozás dolog fog még nekem egy-két kellemetlen percet okozni, abban biztos vagyok.
Tehát valószínűleg járok még erre a jövőben a kérdéseimmel...

Üdv.: Laci.


vas. máj. 09, 2010 22:41
Profil Privát üzenet küldése
a fórum lelke

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 12729
Tartózkodási hely: FLF
Hozzászólás 
laci3041 írta:
Szia !

Köszönöm a választ. Miután átgondoltam, már világos.
Most nézem, nemrég hasonló dolgokról volt itt szó. Olvasnom kellett volna...
Olvastam valahol egy kimerítõ írást a PCLATH mõködésérõl, ott ez volt az utolsó mondat:
"Tehát a PCLATH segítségével válthatunk a memórialapok között"
Ez zavart meg. Most nem találom a fájlt, de az idézett mondatra szó szerint emlékszem.
Gondoltam, mivel végig a 0-dik lapon vagyok, a PCLATH-val még nincs dolgom. Tévedtem...


ne keverd össze az adat és a programmemória lapozást! Az adatmemóriában a status regiszter RP bitjeivel lapozhatsz direkt címzés esetén. Indirekt címzésnél az IRP használandó!!!!!!!!!!!

De a te esetedben a PROGRAMMEMÓRIÁBAN kell lapozni, erre a pclath való úgy, hogy számított ugrás esetén a pclath 8.-tõl felfele hatáozza meg a címet, normál goto és call esetén pedig 11.bittõl. Ez utóbbi csak akkor játszik (mint nálam), ha nem fér el az program+adattábla az alsó 2k-ban.


pén. máj. 07, 2010 11:40
Profil Honlap
a fórum lelke

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 12729
Tartózkodási hely: FLF
Hozzászólás 
én nem szeretek számolgatni, ezt rábízom a programomra, ezért úgy szoktam megoldani, hogy pl.:

org 700
adattabla movwf PCL
ch_level_meter dt "LEVEL METER",0
ch_bass_level dt "BASS LEVEL",0
.
.
.

így a kezdõcímet nem kell számolgatni, hanem a
movlw low ch_bass_level utasítással töltöm be, és a hosszt se kell számolgatni, mivel a 0-ig tart a string.


pén. máj. 07, 2010 11:32
Profil Honlap
ezüst tag

Csatlakozott: szomb. dec. 15, 2007 22:32
Hozzászólások: 14
Tartózkodási hely: Nógrád megye
Hozzászólás 
Szia !

Köszönöm a választ. Miután átgondoltam, már világos.
Most nézem, nemrég hasonló dolgokról volt itt szó. Olvasnom kellett volna...
Olvastam valahol egy kimerítő írást a PCLATH mőködéséről, ott ez volt az utolsó mondat:
"Tehát a PCLATH segítségével válthatunk a memórialapok között"
Ez zavart meg. Most nem találom a fájlt, de az idézett mondatra szó szerint emlékszem.
Gondoltam, mivel végig a 0-dik lapon vagyok, a PCLATH-val még nincs dolgom. Tévedtem...

Válasz a kérdésedre: Ha valamit ki akarok írni a táblából,
W-be a kiírandó szöveg első karakterének táblabeli sorszámát írom.
A BASS LEVEL esetében ez a decimális 11. Mivel a tábla gyakorlatilag RETLW-k egymásutánja.
A kiírandó karakterek számát pedig úgy határozom meg,
hogy egy regisztert feltöltök a kiírandó karakterek számával (itt dec. 10),
és minden visszatérés után csökkentem eggyel. Ha 0-ra csökken megállok és továbbmegyek.
Laci.


pén. máj. 07, 2010 10:38
Profil Privát üzenet küldése
a fórum lelke

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 12729
Tartózkodási hely: FLF
Hozzászólás 
ha megnézed, akkor az addwf utasítás 8bites, ahogy a PCL is az. Nyolc biten 255-ig lehet elszámolni, a te 264 soros programod eleve hosszabb + az adattábla hossza.

Azt tanácsolom, hogy az adattáblát helyezd $300-ra vagy $400-ra, stb. (de $800-nál kevesebbre!!!) és a PClath-ot még a program elején állítsd be ennek megfelelõen. Valahogy így: (a tábla így sem haladhatja meg a 256 byte-ot!!!)

;program eleje
movlw high LCD_Tabla
movwf PClath
.
.
.
org 300 vagy 400, 500, 600, 700...
LCD_Tabla movwf PCL, f; (én a movwf-t használom)
.
.


Egyébként, ha a "BASS LEVEL"-t ki akarod írni, akkor honnan tudod, hogy mennyit kell a W-be tölteni? És honnan tudod, hogy a milyen hosszú a stringed?


csüt. máj. 06, 2010 23:54
Profil Honlap
ezüst tag

Csatlakozott: szomb. dec. 15, 2007 22:32
Hozzászólások: 14
Tartózkodási hely: Nógrád megye
Hozzászólás 
Sziasztok!

Most ismerkedem a PIC-ek programozásával, és volna egy kérdésem.
Rengeteg elmélet átrágása után elkezdtem írni egy programot assemblyben.
Egy LCD-s kivezérlés mérő lesz, + egy-két extra.
Jelenleg úgy a felénél tarthatok (kb. 260 sor), de elakadtam.
Egy adattáblából írok ki szöveget az LCD-re, az aktuálisan kijelzett paraméter nevét.
Működik is szépen, de csak akkor, ha az említett adattáblát a program elejére írom.
Ha a főprogram végére (a szubrutinok elé) akkor csak bizonyos dolgokat nem csinál meg a szoftver,
ha teljesen a végére írom, akkor pedig teljesen meghal.
Kérdésem: miért nem mindegy, hová írom a programon belül az adattáblát?
Ennyi az adattábla:
LCD_Tabla addwf PCL,1
dt "LEVEL METER"
dt "BASS LEVEL"
dt "HIGH LEVEL"
dt "SUBWOOFER LEVEL"
Elvileg még annyira kicsi a program (264 sor), hogy végig a 0-s memórialapon marad a szoftver.
Így lapozási probléma nem lehet. Jól gondolom ?
Biztos, hogy valamit rosszul tudok, csak nem tudom mi az :(...
10 regisztert foglalok le az elején, a 0x20 címtől kezdve.
Elvileg ezek mind a 0-s bankba kerülnek, tehát nem sokszor kell bankot váltanom.
Szeretném megtudni mi a gond, különben később nagy gáz lesz...
Ja, 16F877A-ról van szó.
Légyszi' segítsetek ! Köszönöm !
Laci.


csüt. máj. 06, 2010 21:52
Profil Privát üzenet küldése
vas-tag

Csatlakozott: hétf. ápr. 26, 2010 12:05
Hozzászólások: 1
Tartózkodási hely: Debrecen
Hozzászólás 
aszasza írta:
:D köszi! Megoldottam már.
PIC12F683-mal lett volna az igazi...


hétf. ápr. 26, 2010 12:08
Profil Privát üzenet küldése Honlap
arany tag

Csatlakozott: szer. okt. 24, 2007 17:18
Hozzászólások: 185
Tartózkodási hely: budapest
Hozzászólás 
:D köszi! Megoldottam már.


pén. ápr. 23, 2010 0:15
Profil Privát üzenet küldése Honlap
a fórum lelke

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 12729
Tartózkodási hely: FLF
Hozzászólás 
aszasza írta:
Sziasztok.

Építeni szeretnék egy PWM generátort 12f675 el, de nem tudom hogy álljak neki. 2 poti állását szeretném figyelni és a PWM frekvenciát szabályozni 5-100 hz ig, illetve a kitöltést 0-100% ig. Tudnátok segíteni ebben?
Azért ezt a picet választottam mert ez van kéznél.
Elõre is köszi.


ne mondd, hogy senki se segít, itt az adatlap:
http://ww1.microchip.com/downloads/en/D ... 41190F.pdf


csüt. ápr. 22, 2010 13:40
Profil Honlap
arany tag

Csatlakozott: szer. okt. 24, 2007 17:18
Hozzászólások: 185
Tartózkodási hely: budapest
Hozzászólás 
Sziasztok.

Építeni szeretnék egy PWM generátort 12f675 el, de nem tudom hogy álljak neki. 2 poti állását szeretném figyelni és a PWM frekvenciát szabályozni 5-100 hz ig, illetve a kitöltést 0-100% ig. Tudnátok segíteni ebben?
Azért ezt a picet választottam mert ez van kéznél.
Előre is köszi.


szer. ápr. 21, 2010 10:32
Profil Privát üzenet küldése Honlap
arany tag

Csatlakozott: szomb. nov. 29, 2008 11:08
Hozzászólások: 106
Tartózkodási hely: Bolyaiak városa
Hozzászólás 
Idézet:
Köszi a választ. A PICKit 3-nak milyen hátránya van? Vagy csak felesleges egy kezdőnek?

A PICkit3 elegge gyengere sikerult. Sok minden hianyzik belole, ami a 2-ben megvan, nem beszelve, hogy az ara is magasabb. Igaz, hogy a kozeljovoben valoszinuleg megszunik a tamogatottsaga, de ettol nem igazan erdemes tartani.


szomb. ápr. 17, 2010 20:40
Profil Privát üzenet küldése
a fórum lelke

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 12729
Tartózkodási hely: FLF
Hozzászólás 
fenti okok miatt hibás a microchip mintpéldája is:
http://ww1.microchip.com/downloads/en/A ... 00556e.pdf

Kód:
"The code in Example 5 will allow the user to place and
access a table anywhere in program memory."

EXAMPLE 5:

   org 0x80
   movlw LOW Table;   get low 8 bits of address
   addwf offset,F    do an 8-bit add operation
   movlw HIGH Table;   get high 5 bits of address
   btfsc status,c;   page crossed?
   addlw 1;      yes then increment high address
   movwf PCLATH;   load high address in latch
   movf offset,w;   load computed offset in w reg
   call Table
.
.
   org 0x9FD
Table:   movwf PCL,F;   load computed offset in PCL
   retlw ’A’;      return the ASCII char A
   retlw ’B’;      return the ASCII char B
   retlw ’C’;      return the ASCII char C
.
.
.


1. ha a lekérdezni kívánt lookup elem másik 8lapon van, mint a lekérdezõ rutin, akkor a call Table után a PClath-ot helyre kell állítani, különben a következõ call/goto utasításnál elszáll a program!

2. ha a lookup tábla átnyúlik a 8lapos határon (pl. 0x800), akkor a 8lapos határon túlnyúló elemek lekérdezése esetén már a call Table-nál elszáll a program. A program helyesen: a kiszámolt PClath értéket el kell menteni, a call Table elõtt a PClath-ot a Table magas bitjeivel kell beállítani, majd a movwf PCL elõtt a kiszámolt és elmentett PClath értéket kell a PClath-ba tölteni.


szomb. ápr. 17, 2010 18:08
Profil Honlap
vas-tag

Csatlakozott: pén. ápr. 16, 2010 8:51
Hozzászólások: 2
Tartózkodási hely: Budapest
Hozzászólás 
Ktulu írta:


Köszi a választ. A PICKit 3-nak milyen hátránya van? Vagy csak felesleges egy kezdőnek?


szomb. ápr. 17, 2010 12:08
Profil Privát üzenet küldése
a fórum lelke

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 12729
Tartózkodási hely: FLF
Hozzászólás 
Tehát a megoldás ez lett:

Kód:
   movlw high mGetChar
   andlw b'111'
   movwf PClath_reg
...
   org 7f0
GetChar   bsf PClath_reg, 3
   call mGetChar
   bcf PClath_reg, 3
   return
   org 800
mGetChar   movwf PCL_reg
LCDInitSt   dt ...
...
   org 0xc00
LCDNevek   dt ...
...


tehát a PClath-ba csak az alsó három bitet töltöm fel fixen. Mikor le akarok kérdezni egy karaktert, akkor meghívom a még elérhetõ címen, 0x7f0-án lévõ GetChar rutint, amely bekapcsolja a 11.bitet, majd meghívja a tényleges mûveletet végzõ, felsõ memóriában (0x800-tól) elhelyezkedõ mGetChar rutint, majd annak végeztével törli a 11.bitet.

Ezzel a megoldással a szövegkonstansokat 0x800 fölé helyeztem, 2k szót biztosítva számukra és az alsó memórián felszabadítottam 1,5k szót a program számára. Viszont hátrányai:

1. minden GetChar mûvelet 6 órajelciklussal hosszabb lett!
2. minden GetChar mûvelet eggyel mélyebb, tehát 2 vermet igényel. Ami miatt legfeljebb hat mélységbõl lehet meghívni.

Van ötleted fenti hibák mérséklésére?


szomb. ápr. 17, 2010 11:12
Profil Honlap
a fórum lelke

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 12729
Tartózkodási hely: FLF
Hozzászólás 
Igen, ez volt a gond. Tehát mivel pclath-ot elõre beállítom arra az értékre, ahonnan a lookup táblát használni akarom, (hogy ne kelljen minden táblamûvelet elõtt közvetlenül állítgatni), ezét a $800-as cím fölé állítása után az elsõ goto vagy call-nál már elszáll a progi. Tehát $800-as cím fölé csak közvetlen a lookup tábla használata elõtt szabad beállítani a pclath-ot, majd használat után törölni kell belõle a 11. és afeletti biteket. (mert azok már nem csak a computed goto-ra, hanem minden goto és call-ra hatnak.)


szomb. ápr. 17, 2010 4:16
Profil Honlap
gyémánt tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 3691
Tartózkodási hely: Ada
Hozzászólás 
Hm. ebből még nem teljesen látom, hogy használod. Azt figyelembe vetted, hogy a CALL és GOTO utasítás mellé is csak 11 címbit fér el a kódmemóriába, és a maradék két bitet ezek is a PCLATH-ból veszik az ugrásnál? Tehát ha te feltöltötted a PCLATH-t 0x08-al, elmentél a táblához, onnan egy RETLW visszaküldött pl. a 0x0052 című utasításra, majd itt kiadsz egy CALL (GOTO) utasítást, ami pl. a 0x0147 címet hívná meg, akkor az előzőleg beállított PCLATH 11 és 12. bitek miatt valójában a 0x0947 címre fog ugorni a kontroller a CALL (GOTO) hatására? Miután a táblából a RETLW visszaküldött, ott ismét be kell állítani a PCLATH 11 és 12. bitjét arra a lapra, amin a továbbiakban ugrálni akarsz. Van valami PAGESEL nevű makró, sosem használtam, de ennek a valamilyen szintű automatizálására való. Illetve a Figure 2-3-at nézd meg az adatlapban, az mutatja be ezt a lapozás dolgot. Esetleg vannak még további makrók, LGOTO, LCALL, ezeket is nézd meg, hátha hasznukat veszed.

Mondjuk 16F877 adatlapjában értelmesebben le van rajzolva a programmemóriatérkép...


pén. ápr. 16, 2010 15:08
Profil Privát üzenet küldése Honlap
a fórum lelke

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 12729
Tartózkodási hely: FLF
Hozzászólás 
potyo írta:
T68m írta:
2048($800) és feletti lookup táblába való ugrásnál vagy visszatérésnél elszáll a progi. 16f688.

Van valakinek valami ötlet? Nem elég csak a pclath-ba 0x8-at tölteni, mint alatta?
Tudsz mutatni kódot?


persze! (Köszi, hogy foglalkozol a kérdéssel)

Kód:
      org 300
GetChar      movwf PCL_reg
LCDInitSt      dt ...
LCDInitSor1   dt ...
...
      org 400
hGetChar
hLCDMerre   dt ...
hLCDFelfele   dt ...
...
      org 700
LCDNevek      dt ...
      dt ...
...


meghívás:
      movlw high GetChar
      movwf PClath_reg
...
      movlw high LCDNevek
      movwf PClath_reg

jó, ha org 700-ig használom. Ha org 800-ra kerül az LCDNevek, akkor pclath_reg 11. bitjebe is értékes jegy kerül, és ez a legközelebbi - bármilyen - call-t vagy goto-t elb*a!  :twisted:  :twisted:  :twisted:

ez az oka, a k. életbe! és org 300 alatt már csak 50 szó helyem maradt a programnak és még kéne bõvíteni. Tehát mindenképp org 800 fölé (is) kell tennem szövegkonstansokat. De pclath-ot nem állíthatom oda fixen - mint kiderült -, mert a 11. bittõl kezdve a (z egyéb, programban lévõ) call és goto utasításokra is hatással van. Na, ezen még gondolkodnom kell.


pén. ápr. 16, 2010 14:54
Profil Honlap
gyémánt tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 3691
Tartózkodási hely: Ada
Hozzászólás 
T68m írta:
2048($800) és feletti lookup táblába való ugrásnál vagy visszatérésnél elszáll a progi. 16f688.

Van valakinek valami ötlet? Nem elég csak a pclath-ba 0x8-at tölteni, mint alatta?
Tudsz mutatni kódot?


pén. ápr. 16, 2010 11:57
Profil Privát üzenet küldése Honlap
a fórum lelke

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 12729
Tartózkodási hely: FLF
Hozzászólás 
2048($800) és feletti lookup táblába való ugrásnál vagy visszatérésnél elszáll a progi. 16f688.

Van valakinek valami ötlet? Nem elég csak a pclath-ba 0x8-at tölteni, mint alatta?


pén. ápr. 16, 2010 11:45
Profil Honlap
arany tag

Csatlakozott: szomb. nov. 29, 2008 11:08
Hozzászólások: 106
Tartózkodási hely: Bolyaiak városa
Hozzászólás 
PICKit 2 programozó:
http://www2.chipcad.hu/www/arak.aspx?group=030113


pén. ápr. 16, 2010 9:43
Profil Privát üzenet küldése
vas-tag

Csatlakozott: pén. ápr. 16, 2010 8:51
Hozzászólások: 2
Tartózkodási hely: Budapest
Hozzászólás 
Sziasztok,

Milyen készen kapható PIC égetőt érdemes venni? Szeretnék elkezdeni PIC-el foglalkozni, van egy régi 16F84-es égetőm darabokban. Nincs kedvem forrasztgatni, meg az már butuska is. Ezért gondoltam beruházok valami modernebbe. Tudnátok küldeni valami linket? Jó lenne ha égetni is tudna, meg ott a helyén lehetne próbálgatni is a beleégetett progit. Olyan 15-20 rongyig gondoltam.

Előre is köszönöm


pén. ápr. 16, 2010 9:18
Profil Privát üzenet küldése
vas-tag

Csatlakozott: szomb. ápr. 03, 2010 22:04
Hozzászólások: 4
Hozzászólás 
sziasztok.

Nincs valakinek PIC16-hoz 1wire search algoritmusa leprogramozva ASM-ben? A maxim honlapján csak C nyelvűt találtam, és néhány dolog nem tiszta. De lehet az is inkább megcsinálom magam, csak haladjak vele.


vas. ápr. 04, 2010 15:04
Profil Privát üzenet küldése
a fórum lelke

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 12729
Tartózkodási hely: FLF
Hozzászólás 
Potyo: írtam neked e-mail-t, megkaptad?


hétf. márc. 22, 2010 15:31
Profil Honlap
arany tag

Csatlakozott: kedd szept. 07, 2004 14:53
Hozzászólások: 147
Hozzászólás 
Ahogyan más belsőkvarcos RTC-nél is. Az OSCO-n kijön az IC saját rezegése... Az OSCI-n pedig rezeghetek neki ha úgy akarom... :roll:


hétf. márc. 22, 2010 15:13
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 3691
Tartózkodási hely: Ada
Hozzászólás 
HiMen írta:
Az adatlapján jelezve van hogy van benne kristály:
Tisztál logikai alapon: ha lenne benne kvarc, akkor minek vezettek volna ki OSCI és OSCO lábat?


hétf. márc. 22, 2010 15:11
Profil Privát üzenet küldése Honlap
arany tag

Csatlakozott: kedd szept. 07, 2004 14:53
Hozzászólások: 147
Hozzászólás 
Az Oscillator 32,768 KHz nekem azt jelenti hogy rezeg. Akkor rezegjen... :lol:

Informatikus a tanult szakmám, az elektronikát kényszerből művelem, hogy legyen mit programoznia a kontrollernek. De ez érezhető is :oops:

Az R2025 nem tud századmásodpercet, az meg éppen kell. Ráadásul nincs belőle DIP tokozású. A radirgumira ragasztott felületszerelt cucc bekötésekor majd kifolik a szemem, ráadásul bűn ronda... :lol:


hétf. márc. 22, 2010 15:10
Profil Privát üzenet küldése
a fórum lelke

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 12729
Tartózkodási hely: FLF
Hozzászólás 
HiMen írta:
Az adatlapján jelezve van hogy van benne kristály:

Adatlap, 4. oldal, Fig. 1 Block Diagram

Abból jön ki az OSCO és abba megy be az OSCI
Szépen az egész körbekeretezve mint az IC belseje


Lehet, hogy neked inkább költészettel kéne foglalkoznod? Oda csak annyi van írva, hogy OSCILLATOR! Semmi kvarc.
22. oldal, Fig. 22, világosan oda van rajzolva a külsõ kvarc! Ráadásul egy trimmer kondi a Vdd felé. Szerintem a kondi nélkül is elmegy, illetve lehet azt a Vss felé is kötni. De kvarc az kell.

Különben meg nem értem: miért választottad ezt a tipust, ha egy másikkal már boldogultál???


hétf. márc. 22, 2010 14:15
Profil Honlap
arany tag

Csatlakozott: kedd szept. 07, 2004 14:53
Hozzászólások: 147
Hozzászólás 
Az adatlapján jelezve van hogy van benne kristály:

Adatlap, 4. oldal, Fig. 1 Block Diagram

Abból jön ki az OSCO és abba megy be az OSCI
Szépen az egész körbekeretezve mint az IC belseje


hétf. márc. 22, 2010 13:59
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 3691
Tartózkodási hely: Ada
Hozzászólás 
HiMen írta:
De hiszen van neki sajátja...!
Nincs :!:


hétf. márc. 22, 2010 10:59
Profil Privát üzenet küldése Honlap
a fórum lelke

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 12729
Tartózkodási hely: FLF
Hozzászólás 
HiMen írta:
De hiszen van neki sajátja...!


Mi?


hétf. márc. 22, 2010 10:53
Profil Honlap
arany tag

Csatlakozott: kedd szept. 07, 2004 14:53
Hozzászólások: 147
Hozzászólás 
De hiszen van neki sajátja...!


hétf. márc. 22, 2010 8:12
Profil Privát üzenet küldése
a fórum lelke

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 12729
Tartózkodási hely: FLF
Hozzászólás 
mert az osci és az osco közé egy 32k-s kristályt kell benyomni.


hétf. márc. 22, 2010 0:16
Profil Honlap
Hozzászólások megjelenítése:  Rendezés  
Hozzászólás a témához   [ 6770 hozzászólás ]  Oldal 1, 2, 3, 4, 5 ... 136  Következő

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 42 vendég


Nem nyithatsz témákat ebben a fórumban.
Nem válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Magyar fordítás © Magyar phpBB Közösség