Fórum témák

» Több friss téma
Fórum
Keresés
Lapozás: OK   3 / 29
(#) janikukac válasza Hp41C hozzászólására (») Máj 11, 2014
Köszönöm, ez egy kicsit bonyolult még így is, de remélem meg fogom érteni...
(#) Hp41C válasza janikukac hozzászólására (») Máj 10, 2014
Szia!
Ez az un. buborék rendezés.
Működése röviden:
Kettős ciklussal a kisebb értékű elemet előrébb helyezzük. Ha lefut a kettő sciklus, az elemek nagyság szerint rendezett sorban lesznek a tömbben.
Részletesebben:
Egy ciklussal végigvizgáljuk a tömb elemeit a 0 indextól az (n-1) indexig (azért nem n -ig, mert a soron levő elem utáni elemeket is vizgáljuk). A belső ciklusban az első ciklus által kiválasztott elemet követő elemekre megvizsgáljuk, hogy kisebb-e, mint az első ciklus által kiválasztott elem. Ha kisebb az első ciklus által kiválasztott elemmel felcseréljük. Így a belső ciklus utolsó lefutása után a tömbben levő legkisebb értékű elem a tömb legelső indexű elemébe kerül. Ekkor a külső ciklus változóját növeljük - azaz a további feladat olyan, mintha az 1 indextől egy elemmel kisebb tömböt rendeznénk...
(#) janikukac hozzászólása Máj 10, 2014
Szép napot kedves fórumozók!
Van-e itt egy kedves társunk, aki programozó, és akad 10 perc szabadideje? Mert ha lenne egy ilyen kolléga, akkor kellene 1 kis segítség. Van egy program, amiben 1D tömb van, és nekem nehézséget okoz. Pascal-os program(mit tehetek, ezt tanítják), s ellenőrző lesz belőle, de sehogyan sem értem a működését az első ciklus után. Szóval kellene egy nagyon egyszerű nyelven fogalmazott magyarázat, hogy mi miért van, minek mi a szerepe, de jól érthetően!
A program szövege nagyon egyszerű:
Idézet:
„Beolvasni n elemét a tömbnek, sorbarendezni őket csökkenő sorrendben, s e rendezett elemeket kimutatni egy új sorban, elválasztva üres hellyel!”

Mellékeltem a Pascal filet, remélem mielőbb kapok segítséget. Sokatoknak ez rutinmunka, nekem életmentés! Üdv!

P44.PAS
    
(#) Hp41C válasza progee hozzászólására (») Ápr 7, 2014
Sleep módból a következők tudják felébreszteni a 16F88x -et:
Külső reset, watchdog, RB0 - INT bemenet, Timer1 átfordulás (aszinkron számláló), ECCP capture esemény, A/D konverzió vége, EEProm írás vége, komparátor kimenet változás, változás figyelő (IOC), Eusart break és I2C slave állapotváltás. Az teheti meg, amelyik működése engedélyezett és megszakítás engedélyező bitje is 1 értékű (kivéve watchdog és reset).
Lehet a timer1 -et használni sleep alatt: aszinkron szálmálóként letiltott megszakításkéréssel vagy a megszakítás kérésére újrainicializálva és űjra sleep állapotba küldeéssel. Az utóbbi esetben a főprogramnak meg kell különböztetni a timer1 átfordulást a tényleges felébresztéstől.
(#) progee válasza Hp41C hozzászólására (») Ápr 7, 2014
Mit lehet ez ellen tenni?
Nem lehet alvó módba tenni a PIC-et, ha használom a Timer1 órát?
(#) Hp41C válasza progee hozzászólására (») Ápr 7, 2014
A timer1 átfordulása felébreszti.
(#) progee válasza Hp41C hozzászólására (») Ápr 7, 2014
Azzal szeretném felébreszteni a PIC-et, azért állítottam 1-re.
Ha testre kötöm akkor is fennáll a probléma.
Arra gyanakszok, hogy a többi lábára kapott impulzus miatt esik mindig ki az alvó módból, és mivel külső kvarcot használok órának, ezért az RC1/T1OSI lábra folyamatosan kapja a jeleket.
Ha átállítom a Timer1-et belső órára, és kiveszem a kvarcot az áramkörből, akkor mintha működne rendesen.
A hozzászólás módosítva: Ápr 7, 2014
(#) Hp41C válasza progee hozzászólására (») Ápr 7, 2014
Idézet:
„INTCON.INTE := 1;”

A külső RB0 megszakítás bekapcsolva, az RB0 láb bemenet. Fix logikai szint van rá kapcsolva?
A hozzászólás módosítva: Ápr 7, 2014
(#) progee hozzászólása Ápr 7, 2014
Sziasztok!
Tanácstalan lettem a Sleep parancs használatával kapcsolatban.
Azt tapasztaltam, hogy ha alvó módba akarok tenni egy külső kvarcról (T1OSO/T1OSI lábak) üzemelő órát, akkor a programom fő része továbbra is fut, és frissíti az LCD szövegét.
Készítettem a hiba megtalálásához egy teszt kódot és Proteusz kapcsolást.
Itt beállítottam egy Timer1 időzítést és a főprogramban villogtatok egy ledet, majd azonnal alvómódba teszem a mikrokontrollert.
A Timer1-nek valójában nincs is köze a villogtatáshoz, annak csak a háttérben kellene futnia.
Ennek ellenére azt tapasztalom, hogy ha a Timer1 inicializálva van, akkor a led a sleep mód ellenére is villog, ha viszont kikapcsoloma Timer1-et, akkor megmarad az utolsó állapotában, tehát valóban "elalszik" a mikrokontroller (16F886).
Ennek így kell működnie, vagy én követek el valami hibát?
(#) miki144 válasza Ktulu hozzászólására (») Márc 19, 2014
Sziasztok.

Találtam egy jó leirást.
Bővebben: Elte

Hali
(#) gthomas hozzászólása Márc 18, 2014
Sziasztok!
Használt már valaki tcp connectet?
Egy 18f67j60 at programozok mikropascalban : Net_Ethernet_Intern_connectTCP(ip, port_remote, port_local, socket) -tel próbálkozok kapcsolódni. Lehallgatva a hálózatot látszik, hogy ki megy a kérés a tcp szerver felé, a szerver válaszol is, de nem kapcsolódik valamiért a pic. Valakinek sikerült ezt használni?
(#) miki144 válasza Ktulu hozzászólására (») Márc 17, 2014
Sziasztok.

Az én progim-ból sok minden hiányzott még.

A PORTA0 lábon van egy 10K ellenállás.Bővebben: Gomb 10K ohm

asm-ben megirtam, ott egy kicsit könyebb volt a dolog.

De igy is jó.


Most nézem hogy mi micsoda az mpas-fájlban.

hali
(#) Ktulu válasza miki144 hozzászólására (») Márc 17, 2014
Szia, csatoltam a programot.
Nem írtad, hogy aktív alacsony vagy magas a gomb, én alacsonyra írtam. (tehát kell egy felhúzó ellenállás a PORTA0-ra)
Üdv.
A hozzászólás módosítva: Márc 17, 2014

uPascal.rar
    
(#) progee válasza miki144 hozzászólására (») Márc 17, 2014
ansel és anselh regisztereket is állítsd nullára.
Ezzel az AN lábakat analógról digitálisra váltod át.
(#) progee válasza miki144 hozzászólására (») Márc 17, 2014
Kapcsolásoddal lesz szerintem a baj.
Pl, ha minden porta és porte bemenet, akkor ezeknek a nem használt lábait nem árt 10k ellenállással testre, vagy tápra kötni.
A nyomógomb bekötésénél szintén kell a helyesen bekötött ellenállás.

adcon0 és adcon1 regisztereket állítsd még nullára.
A hozzászólás módosítva: Márc 17, 2014
(#) miki144 válasza progee hozzászólására (») Márc 17, 2014
Üdv. ( PIC16F887)

Szimulátorba betöltöttem, forditás után folyamatosan villognak a led-ek.
Nekem is ugyan ez a hiba jött ki.


Amikor én ezt megirtam, termlészetesen nem münködött .
Ezt használtam forrásnak. (csatolt fájl eredeti)
De ezzel sem ment.
Napersze átirtam benne amit kell.

asm-ben is megirom, aztán majd kiderül gyorsan hogy mi kell még hozzá hogy münködjön.

Ma este átteszem a programot PIC16F84-re is, és megnézem hogy ott mit csinál vele.


Hali
A hozzászólás módosítva: Márc 17, 2014

Button.mpas
    
(#) progee válasza miki144 hozzászólására (») Márc 17, 2014
Alapesetben így kell:
  1. program feltetel1;
  2. { Declarations section }
  3. begin
  4.  
  5.   trisa := %11111111;  // port A bemenet
  6.   trisb := %00000000;  // port B kimenet
  7.   trisc := %00000000;  // port C kimenet
  8.   trisd := %00000000;  // port D kimenet
  9.   trise := %11111111;  // port E bemenet
  10.  
  11.   while true do // a folyamat ismétlése
  12.   begin
  13.  
  14.     if porta.0 = 0
  15.     then
  16.     begin
  17.       portb.3 := 0;
  18.       portb.2 := 0;
  19.       portb.1 := 0;
  20.       portb.0 := 0;
  21.       portb.7 := 1;
  22.       portb.6 := 1;
  23.       portb.5 := 1;
  24.       portb.4 := 1;
  25.     end
  26.     else portb := not portb;
  27.    
  28.   end;
  29. end.


Nem árt még a porta.0-t pergésmentesíteni egy boolean változó beiktatásával.
A hozzászólás módosítva: Márc 17, 2014
(#) miki144 hozzászólása Márc 16, 2014
Sziasztok. ( PIC16F887 )

Feltétel iráshoz kérnék némi segitséget.

A gomb a PORTA0-ra kerül. ( RA0)

RB7,RB6,RB5,RB4 led világit alapjáraton.
RB3,RB2,RB1.RB0 nem világit a led alapjáraton.

Amikor a gomb lenyomásra kerül (PORTA0) , akkor
RB7,RB6,RB5,RB4 nem világit a led, de a RB3,RB2,RB1.RB0 világit.

a többi a fájl-ban.



Hali.
(#) miki144 válasza progee hozzászólására (») Feb 1, 2014
Köszi a segitséget.

Most már üzemel a villogó.

Igaz az integrált A1-változóval megszenvedtem amire elfogadta.

const A1 = 30; // idözitési változó

Én ezt még úgy ismertem hogy ( integer : ; )

Most már tudok tovább haladni.

Üzemképes példaprogram a ZIP-ben

Hali
(#) progee válasza miki144 hozzászólására (») Jan 30, 2014
Valóban! A % karaktert kihagytam a bináris szám elől.
Tehát helyesen: trisa := %11111111;
De megadhatod 16-os számrendszerben is: trisa := $FF;
A hozzászólás módosítva: Jan 30, 2014
(#) miki144 válasza progee hozzászólására (») Jan 29, 2014
A TXT-ben vannak a declaration.

Gondolom én ebből kéne dolgozni. (CTRL+D gomb.)

fontos.txt
    
(#) miki144 válasza progee hozzászólására (») Jan 29, 2014
Üdv.

A példaprogit beillesztettem a MikroPascal6.0-ba

Hibaüzenetet kaptam.

Argument is out of range "11111111"to'byte"
A többi a jpg-fájlban látszik.
Pálda progi, igen sok van benne ,de nem teljesen jók,

Hiányosak illetve nem műnködnek.

Küldjetek légyszives zip-ben, kompletten leforditott fájlokat amik üzemképesek.

PIC16F84A-hoz.

Hali

Capture 1.jpg
    
(#) gthomas válasza progee hozzászólására (») Jan 29, 2014
Igen, így kezdtem, mint minden eddigi PIC-nél, amivel foglalkoztam.

A teszt program 1 másodpercig felvillant egy ledet, majd 1 másodpercig elalszik.
Így kellene működnie. De ha HS vagy HS+PLL osc-t használok, és a Freq 25 MHz, kb. fél percig ég és fél percig elalszik. Nem mértem, de hosszú idő.
Ha a frekvencia 0.316..... akkor működik jól, másodperces ciklussal. Innen gondolom, hogy 31 kHz-cel megy.
A hozzászólás módosítva: Jan 29, 2014
(#) progee válasza gthomas hozzászólására (») Jan 29, 2014
A "Project\Edit project" menüre felbukkanó ablakban állítsd az "Oscillator Selection"-t "HS oscillator"-ra, az "Oscillator Frequency"-t pedig 25.0 értékre.
A hozzászólás módosítva: Jan 29, 2014
(#) gthomas hozzászólása Jan 29, 2014
Sziasztok!

Tud abban valaki segíteni, hogy hogyan kell egy 18F67j60 Pic-et rávenni hogy a külső (OSC1/OSC2) lábakra kötött 25MHz - es osc.körről vegye a belső órajelet?
Átolvastam a doksit, de nekem mindig (függetlenül attól hogy mit állítok) 31 kHz-en működik:

Így próbáltam:

T1CON.T1RUN_bit:=0;

OSCCON.3:=0;
OSCCON.1:=1;
OSCCON.0:=0;
OSCTUNE:=$40;

Köszi!
(#) progee válasza miki144 hozzászólására (») Jan 28, 2014
Tele a net példákkal, használati útmutatókkal, szakdolgozatokkal, és ahogyan gthomas mondta, a pascal könyvtárában is vannak demok.

  1. program LED_Blinking;
  2. begin
  3.   trisa := 11111111;
  4.   trisb := 0;
  5.   while true do
  6.   begin
  7.     portb.0 := 1;
  8.     delay_ms(1000);
  9.     portb.0 := 0;
  10.     delay_ms(1000);
  11.   end;  
  12. end.
(#) gthomas válasza miki144 hozzászólására (») Jan 28, 2014
Szia!

A mikropascal-ban van néhány példaprogram, azokból el tudsz indulni.
pl:

MikroPascal\Examples\Development Systems\BIGPIC5\Led Blinking
(#) miki144 hozzászólása Jan 27, 2014
Sziasztok.

Segítséget szeretnék kérni PIC16F84A programozásában.
Lépésről lépésre. ASM-ben azért megyeget a dolog.

Most MIKROPASCAL-ban szeretnék programot írni.

MIKROPASCAL-BAN ctrl+d és ez jön ki. Lásd TXT

gondolom ezekkel tudok majd dolgozni. Borland delphi7-ben már kreáltam pár szoftvert,
de ez nem az .




Ebben kérném a segítségeteket.
PIC RA PIN -bemenet
PIC RB PIN -kimenet



Ide hogyan kell helyesen megadni a paramétereket.
{ Declarations section }

begin

RB0-pin bekapcsol
TIMER-késleltetésnek
RB0-pin kikapcsol stb





end.


Példaprogramok is jöhetnek, minden mennyiségben.
Köszönöm.
Hali
A hozzászólás módosítva: Jan 27, 2014

fontos.txt
    
(#) glaci válasza progee hozzászólására (») Dec 21, 2013
Köszönöm a segítséget, én is gondoltam, hogy valami ilyesmi miatt figyelmeztetett a rendszer.
(#) progee válasza glaci hozzászólására (») Dec 21, 2013
Az eeprom 41. byte-jába akartál tizedes törtet írni.
Vagy kerekítsd a kapott eredményt 0 és 255 közötti kerek egész számra (floor - lefelé kerekít; ceil - felfelé kerekít), vagy 2 byte-ba írd be a mentendő adatot (modf - szétbontja az egész és a tizedes részére a törtet). Természetesen utóbbi esetben is mindkét byte 0..255 közötti szám lehet. Súgóban találsz részletes leírást a kapcsolódó függvényekről.
A hozzászólás módosítva: Dec 21, 2013
Következő: »»   3 / 29
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem