Fórum témák

» Több friss téma
Fórum » MikroPascal kérdések
 
Témaindító: bozsokiandras, idő: Máj 15, 2006
Témakörök:
Lapozás: OK   26 / 29
(#) gthomas válasza progee hozzászólására (») Dec 19, 2013 /
 
Nem tudom megmagyarázni, de ha az ADCON0, ADCON1 biteket nem külön-külön állítom akkor megy:

TRISC.0:=1;
ANSELC.0:=1;
ADCON0:=%0010000;
ADCON1:=%11010000;

ennyi az inicializálás, és tökéletes. Ugyan ez volt a ADCinit eljárásban is, csak bitenként.
Lehet hogy valami MikroPascal bug?
(#) progee válasza gthomas hozzászólására (») Dec 19, 2013 /
 
Amikor bitenként állítod be akkor minden bitnek adj értéket, mert lehet, hogy az alapértelmezett beállítása neked nem megfelelő.
Ezek az ADCON0 bitjei:

  1. // ADCON0 bits
  2. const ADON = 0; register;  
  3. const GO_NOT_DONE = 1; register;    
  4. const CHS0 = 2; register;    
  5. const CHS1 = 3; register;
  6. const CHS2 = 4; register;
  7. const CHS3 = 5; register;
  8. const CHS4 = 6; register;
A hozzászólás módosítva: Dec 19, 2013
(#) gthomas válasza progee hozzászólására (») Dec 19, 2013 /
 
Nekem ez így jó, szépen méri az elem feszültségét is. Köszi a segítséget.
(#) glaci hozzászólása Dec 21, 2013 /
 
Sziasztok!
Szeretnék eepromba adatokat írni és abból visszaolvasni. A tárolandó adatok egy függvény együtthatói, amik valós számok.A változónak amit tárolni akarok real adattípust adtam ami így néz ki: viz_bea:real;. Fordításnál figyelmeztetést kaptam mely így szól: 145 1509 Warning: Implicit typecast performed from "byte" to "real" és amire vonatkozik:
eeprom_write(41,viz_bea);

Segítsetek megfejteni és javítani !
A hozzászólás módosítva: Dec 21, 2013
(#) 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
(#) 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.
(#) 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
    
(#) 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
(#) 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 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 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 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
(#) 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
    
(#) 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
    
(#) 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 (») 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
(#) 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.
(#) 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 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 /
 
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
(#) 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.
(#) 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
    
(#) 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
(#) 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 19, 2014 /
 
Sziasztok.

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

Hali
(#) 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?
(#) 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 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 /
 
A timer1 átfordulása felébreszti.
(#) 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?
Következő: »»   26 / 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