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:
Nemis olyan bonyolult a hét napjának kiszámítása: An_algorithm_to_calculate_the_day_of_the_week
Az évszázados tábla eredménye fixen beépíthető, a néggyel való osztás valójában két hellyel jobbra shiftelés, azt pedig, hogy szökő év-e, azt egy AND művelettel meg lehet állapítani. Szóval leprogramozni se nagy valami, főleg magasabb szintű programnyelvben. Igaz, hogy link volt, de ha ugyanolyan hosszú a szövege, mint maga a link, akkor ugyanúgy széttolja az oldalt. Kicsit rövidítettem. -- kobold
Szia!
Bevallom őszintén, én csak az óra, perc és másodperc regisztereket olvasom ki belőle, a többire eddig nem volt szükségem. Szóval ebben nem tudok segíteni. :no: Amúgy tegnap adtam tápot a LED kockának, több mint 1 hét után. Tapasztalat: 10 másodpercet késett csak a vekker része. ![]()
Tévedés ne essék, én meg tudom csinálni,
![]()
Nem nagy drágítás az ilyesmi, és tisztán hardveresen is meg lehet oldani az egészet.
Jó lesz az a kis késés. Ha jól számolok az évi 8 percet jelent. Végül is nem atomórát építünk. Bár én azt hittem hogy a kvarc ennél pontosabban rezeg. Bólogattam is magamban (már amennyire értek hozzá), hogy 32,768 kHz elég precízen meg van határozva a frekvencia. Vagy a csipp torzít? Nem tudom, de nem precíz az biztos. :no: Az enyém siet fél másodpercet naponta 15 pF-os kondival.
De ha kiszámoljuk az óra árát meg a kvarcot, így király ahogy van. :yes: A Casio biztos nem ilyet használ, de nem veszi többért az biztos. ![]() A kocka mikor lesz kész? Már megnézném. Hali!
Most kíváncsivá tettél.
![]() Ma már csinálok a kockáról videót, csak rá kell jönöm, hogy kell jútúbra feltölteni. ![]()
Hello!
A 30ppm elég gyatra eredmény. Ez évente majdnem +-16 perc. Egy sima kavicsra is 20ppm-et írnak. üdv! proli007
Üdv!
Legalább nem csak nekem tűnik soknak ![]() Én egy alaplapi kavicsot használtam, az gondoltam elég pontos lesz. Amúgy ezt az adatlapot néztem: SX1555 Gthomas: A videó még várat magára. Sajnos nem "kamera barát" frekvencián megy, valamit ki kell okoskodnom, mert így nem élvezhető. ![]()
Hello!
Mondjuk, ennek a toleranciája 30ppm, a hőfokfüggése 10...40 fok között csak 10ppm. Azért ez jobban hangzik.. (Persze nem tudom, milyen tartományban húzható el egy kondival, De ha procival működik akkor érdemesebb a programmal korrigálni.) üdv! proli007
Sziasztok!
Teszteltem az MMC és a PS/2 library-t. Az MMC_Fat_Init-et egy 1GB-os SD karival próbáltam, de nem ismerte fel. (előtte formáztam FAT16 fájlrendszerre, 3v3-ra illesztve volt 74HC245-el.) De legalább a kártya túlélte :whistle: A PS2 viszont szuperul műxik! Egy multimédiás Compaq billel próbáltam, még a plusz 10-en akárhány gombot is kezeli!
Sziasztok!
16F690. A programozás sorám kifgytam a ROM-ból. A PIC adatlapján az szerepel, hogy a program memória 4096 words. Az azt jelentené hogy 4096x16 azaz 65kByte? A portok száma elegendő lenne. Mire, milyen PIC-re váltsak, amelyikben több a ROM?
Szia!
Nem egészen. A 16F690 -es programmemóriája 4096 (4K) X 14 bit szervezésű. Az utasítások 14 bitesek, tehát összesen 4096 utasítást tudsz tárolni a programmemóriában. Konkrét típust nem tudok ajánlani, annyira nem vagyok gyakorlott, de mondok egy használható megoldást. Létezik a microchipnek egy ún. product selection tools nevű online (letölthető verzióban is elérhető) alkatrészkeresője, megadod a paramétereket, és ő eredményül kidobja az adott tulajdonsággal rendelkező kontroller nevét. Product Selection Tools Üdv.
Én ezeket javasolnám:
16F876A - 8K word - 28 láb 16F877A - 8K word - 40 láb 18F452 - 32K word - 40 láb Ezeknél legalább tudnád használni a hardweres I2C-t is. A szoftveres elvesz párszáz wordot a memóból "feleslegesen". Ezekkel meg vagyok elégedve, strapabírók. ![]()
Letölthető a mikroPascal 8.0.0.1 verziója is, amihez készült "gyógyítás" is. ZIP_12_MB
Idézet: „Mire, milyen PIC-re váltsak, amelyikben több a ROM?” Például PIC24HJ128GP502-re (128 KB ROM, 8 KB RAM - 28 láb). ![]()
Az imént próbáltam az MMC_FAT_Init-et 8.1 alól. Ebben kijavították a hibát, szuperul kezeli az 1 GB-os kártyát! (szintillesztés nélkül próbáltam, a 18F452 3v3-ról járt.)
Talán ebben a verzióban már működik a Manchaster library is, de most RF modul hiányában nem tudom kipróbálni...
Akkor inkább 16F887-et rendelj, az olcsóbb és többet tud.
Nincs mit!
![]() Amúgy 22 MHz-en is stabilan fut!
Inkább ne ezeket az elavult típusokat használd! Ha megteheted, hogy új, korszerű típusra tervezel és nem vagy valami miatt hozzáláncolva az elavult és drága típusokhoz, akkor minden szempontból jobban jársz. Pl. egy 16F877A árából lehet venni két 16F887-et, ami újabb és ráadásul többet is tud.
Tisztelet mindenkinek.Van egy 18F4550-em,
és gondom van az LCD kiiratással.(Mikropascal) Port def.OK,bekötés OK,program simulatoron OK, csak hogy semmit sem látni.Fizikailag sem,szimulátoron sem(OshonSoft).Mellékelném a minta progit: Program LCD_Sample; Var Text :array[3] of char; TSzam,XTab:byte; BEGIN PORTB:=0; TRISB:=0; intcon:=0; Lcd_Init(PORTB); Lcd_Cmd(LCD_CURSOR_OFF); Lcd_Cmd(LCD_CLEAR); Lcd_Out(1,1,'Proba..'); Delay_ms(50); Lcd_Out(2,1,'...Karakter DEMO'); Delay_ms(50); Lcd_Cmd(LCD_CLEAR); Lcd_Out(1,1,'Ertek='); TSzam:=32; XTab:=1; REPEAT ByteToStr(TSzam,Text); Lcd_Out(1,7,Text); Lcd_Chr(2,XTab,TSzam); inc(TSzam); if TSzam=0 then TSzam:=32; inc(XTab); if XTab>16 then XTab:=1; Delay_ms(5); UNTIL 0=1; END. Ha tud valaki bármi útba igazitást elöre is kösz. ![]()
Hello
A probléma szerintem az, hogy a Text változót te char-nak deklarálod, pedig szerintem string-nek kéne. Próbáld meg ezzel a deklarációval: var Text: string[3]; Üdv.
Üdv!
A késleltetéseket is tedd nagyobbra, kb. 4-500 ms körüliekre. Lehet hogy nincs elég ideje frissíteni. Ezen kívül ellenőrizd a kontrasztbeállítást is a kijelzőn.
Nos a "Text"változó string lett,
ez a parancs hogy: "Lcd_Out(1,1,'Proba..');" sem jelenik meg.Egyszóval semmi.Megjegyzem még a szimulátoron sem, ahol az LCD kontrasztját szükségtelen babrálni,mert nincs! Szóval fiúk tényleg nem tudok ép magyarázatot adni hogy mégis mi van...Várom a további jó ötleteket...Köszi. ![]()
Leirnám a biztositékokat is:
[DeviceFlags] Count=22 Value0=_PLLDIV_5_1L = $00FC Value1=_CPUDIV_OSC1_PLL2_1L = $00E7 Value2=_USBDIV_2_1L = $00FF Value3=_FOSC_HSPLL_HS_1H = $00FE Value4=_FCMEM_OFF_1H = $00BF Value5=_IESO_OFF_1H = $007F Value6=_PWRT_OFF_2L = $00FF Value7=_BOR_ON_2L = $00FF Value8=_BORV_21_2L = $00FF Value9=_VREGEN_ON_2L = $00FF Value10=_WDT_OFF_2H = $00FE Value11=_WDTPS_32768_2H = $00FF Value12=_MCLRE_ON_3H = $00FF Value13=_LPT1OSC_OFF_3H = $00FB Value14=_PBADEN_OFF_3H = $00FD Value15=_CCP2MX_ON_3H = $00FF Value16=_STVREN_ON_4L = $00FF Value17=_LVP_OFF_4L = $00FB Value18=_ICPRT_OFF_4L = $00DF Value19=_XINST_OFF_4L = $00BF Value20=_DEBUG_OFF_4L = $00FF Value21=_WRTB_ON_6H = $00BF
Próbáld meg beiktatni ezt a parancsot a kijelző inicializálása után:
lcd_cmd(lcd_turn_on); Üdv.
Ezt is megpróbáltam de semmi...
Program LCD_Sample; Var Text :string[3]; TSzam,XTab:byte; BEGIN PORTB:=0; TRISB:=0; intcon:=0; Lcd_Init(PORTB); Lcd_Cmd(LCD_TURN_ON); Lcd_Cmd(LCD_CURSOR_OFF); Lcd_Cmd(LCD_CLEAR); Lcd_Out(1,1,'Proba..'); Delay_ms(20); Lcd_Out(2,1,'...Karakter DEMO'); Delay_ms(20); Lcd_Cmd(LCD_CLEAR); Lcd_Out(1,1,'Ertek='); TSzam:=32; XTab:=1; REPEAT ByteToStr(TSzam,Text); Lcd_Out(1,7,Text); Lcd_Chr(2,XTab,TSzam); inc(TSzam); if TSzam=0 then TSzam:=32; inc(XTab); if XTab>16 then XTab:=1; Delay_ms(5); UNTIL 0=1; END.
A késleltetéseket kisebbre tetted, nem nagyobbra. :
![]()
Hát nem bosszantó?Ha 16F877-el vagy 16F887-el
próbálkozom minden OK. ![]() |
Bejelentkezés
Hirdetés |