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:
Hello
Próbálj meg 100-200ms késleltetést betenni a nokia clear utasítás elé és mögé is. Üdv.
Köszi
Sziasztok
Tudja valaki, hogy mit kéne módosítani Nokia 3310-es uniton, hogy 3210 -es kijelzőt is meghajtson?
Felvetettem a kerdest a MikroElektronika forumon, es valoban bug-rol van szo.
Bővebben: Link
Emlekeim szerint a ket kijelzo megegyezik, (PCD8544) tehat semmit.
Szia
Kipróbáltam 3210 kijelzőn nem ír ki semmit a 3310 megy gond nélkül.
Lehet, hogy nem jól érintkezik a gumi átvezető, vagy egyszerűen csak halott a kijelző!
Sziasztok!
Bütykölök egy 18F4550-et, egyenlőre próbapanelen. A mikropascalban lévő mintaprogramot töltöttem le. Nem vártam, hogy egyből elindul, (nem is figyeltem az eredményt) csak az USB-t próbálgatom elindítani. Szóval azt vártam, hogyha rádugom a gépre az USB kábelt, a Windows felkapja a fejét, hogy "új hardver" és elkezdi keresni a drivert. Mielőtt elkezdtem az ismerkedést, letöltöttem és installáltam ezt: "Microchip Application Libraries v2010-08-04 Installer.exe" , gondolom ebben vannak (többek között) a microchip-es USB driverek is. Tehát szerintem már az elején nem ok valami, a windowsnak jelezni kellene hogy valami usb-s holmit rádugtak. Nem? Más. Rég foglakoztat, hogy miért használnak külső oscillátort a pic-ekhez (inkább a programozáshoz értek mint a hw-hoz). A pic-ekben alapból benne van a rezgőkör, én mindig így állítom be, mi az előnye a külső oscillátornak? Köszi! T.
Szia!
Nem pontosan értem az USB-s problémát. Megfelelő firmware van a PIC- be programozva? A hardver a gyári ajánlások szerint van kialakítva? Nekem nagyon úgy tűnik, hogy az USB modul be sincs kapcsolva, így a windows nem is érzékel semmit, hogy USB eszköz csatlakozik. A külső kvarc USB- s alkalmazásokhoz elengedhetetlen. A belső óra nagyon pontatlan, időbeli stabilitása sem megfelelő. Szerintem nézz szét itt az oldalon is az USB- s alkalmazásokkal kapcsolatban. Több cikk és fórumtéma is foglalkozik vele.
Köszi, megtaláltam a megfelelő doksit, akkor olvasgatom.
T.
Sziasztok
Nincs valakinek Nokia 3510i Lcd -hez Unit?
Tessék. Az inicializálásnál látsz olyan sort, hogy SendCMD($20), ha azzal nem lenne jó a kép, javítsd át $21-re. Kapsz hozzá ékezetes karakterkészletet is.
![]() A WriteLn használata:
Szia
Nagyon szépen köszönöm. Mindjárt próbálom is ki.
Szia
Egy rajzot tudnál küldeni az illesztésről? Köszi
Helló
Sajnos ezzel a hibával leáll nem fordítja le : Invalid ASM instruction: "BTFSC data,7" n3510i_lcd.mpas a data -t átírtam más változóra és úgy sem fordul. Jelenleg 4.1 MikroPascal pro van fent. PIC16F819 -el szertném majd hajtani. A BMPs.mpas Unitot sem találja. ![]()
A "USES" részből töröld ki a "BMPs"-t.
A Senddata és Sendcmd procedúrákban az asm-es részeket szedd ki, és írd át pascal szintaxisra azokat a részeket. 18F452-re írtam ezt, a tiédben ezek szerint nincs ilyen assembly utasítás. Még a portlábakat kell átírnod annak megfelelően, hogy hova kötöd a kijelzőt.
Köszi, küszködök vele előbb vagy utóbb sikerülni fog.
Sziasztok!
Van egy pic16f716-os PIC-em, rávan kötve egy LED, egy TSOP4836-os infra szenzor és egy infra LED. Annyit szeretnék elérni, hogy alapból világít a led és ha belevilágítok az infra LED-del a szenzorba akkor meg nem világít. Ez akkor működött amikor az infra LED-nek kívülről adtam a 36kHz-et, de ha PWM-el akarom, akkor nem akar működni. Valamiért nem működik a PWM 31-41kHz között. Valaki eltudná mondani, hogy miért nem működik?
Sziasztok!
ds1821-el szeretnék hőmérsékletet mérni tizedes pontossággal. A hőmérséklet jól jön, viszont a tizedes érték nem. Az érték változik, de az első tizedes érték mindig 4-es, tehát valami nem ok. A counter regiszter 9 bites, viszont az ow_read csak bytokat tud olvasni. Szerintem itt nincs rendben valami. Így próbáltam: //-> tizedesek count_remain:=0; count_per_c:=0; Ow_Reset(PORTC, 3); Ow_Write(PORTC, 3, 0xA0); delay_ms(320); count_remain :=Ow_Read(PORTC, 3) shl 1; count_remain := count_remain + (Ow_Read(PORTC, 3) shr 7); Ow_Reset(PORTC, 3); Ow_Write(PORTC, 3, 0x41); Ow_Write(PORTC, 3, 0xA0); delay_ms(320); count_per_c :=Ow_Read(PORTC, 3) shl 1; count_per_c := count_per_c + (Ow_Read(PORTC, 3) shr 7); //-> tizedesek temp:=temp-0.5+((count_per_c-count_remain)/count_per_c); floattostr(temp,st); lcd_out(2,1,st); Van valakinek ötlete? Köszi!
Sziasztok!
Nincs valakinek MAX6956 - működö Unitja? Köszönöm.
Sziasztok!
Nem régóta ismerkedek a mikropascallal avr-es környezetben. Szépen haladok is, de sehogy nem tudom megoldani a szoftveres véletlenszámgenerálást. (Nem akarom igénybe venni acd bemenetet.) A Mikroe oldalon található forráskódot próbáltam használni, de nem fordítja le a kódot, az ASM-hez meg sajnos nem értek. Idézet: „function random_(max_r : byte) : byte; begin random := random; repeat begin asm RLf _random,W RLf _random,W BTFSC _random,4 XORLW 1 BTFSC _random,5 XORLW 1 BTFSC _random,3 XORLW 1 MOVWF _random end; end; until ((random < max_r) AND (random > 0)); result := random; end; ” Ha valakinek van ötlete, akkor azt szívesen várom. Előre is köszönöm!
Sziasztok, kicsit belekeveredtem egy PIC16f877 portbeállításba, remélem valaki tud segíteni, mert a leírásból nem volt világos.
A lényeg hogy az RA0. és RA1-et analóg bemenetként akarom használni, RA2-RA.5 digitális bemenet, és RE.0-RE.1 szintén digitális bemenet, RE.2 kimenet. A problémám az hogy hogyan adom meg hogy az RA0-1 analóg legyen és a többi digitális, mire kell állítani az ADCON0 és az ADCON1-et? Előre is köszönöm a segítséget!
Szia!
A PIC16F877 doksijában, a 122.oldalon léáthatod hogy az analog portok confugurálása kötött, csak azokat a kombinációkat lehet beállítani ami ebben a táblázatban szerepel. Olyan lehet hogy csak az RA0,RA1-analog a többi digitális. Az ADCON1regiszter PCFG0-PCFG3 bitjei 1101, de ekkor az RA3,RA2-n a referenciának kell lennie. Amit te akarsz azt szerintem nem lehet beállítani. Igen ez szívás az ember nagy bőszen azt gondolhatlója hogy ha egy portra az van írva hogy analog/digit akkor a részletes ismertetésnél szembesül a korlátozásokkal. Nem ez az egyetlen eset a PIC-nél sajnos. Én is jártam már így... Üdv brs
Hali
Hasznalj 16F887-et. Ott szabadon valaszthatoak az uzemmodok. Es meg olcsobb is.
Szia
ez volt a bajom hogy nem találtam a táblázatba ezt a kombinációt amit én akartam összehozni. Azért köszönöm a segítséget
Sziasztok!
Soros porton próbálok fogadni 6 byte adatot, a problémám hogy az első 2 byte-ot leveszi szépen, de a többibe a második adatát rakja bel. Az adatküldés szépen üzemel, (azt kipróbáltam), de nem tudom mi lehet a hiba hogy nem akar levenni több adatot. Pic16f877 3,6864MHz Programrész: USART_Init(9600); if Usart_Data_Ready() = 1 then begin adat1:=Usart_Read; adat2:=Usart_Read; adat3:=Usart_Read; adat4:=Usart_Read; adat5:=Usart_Read; adat6:=Usart_Read; Usart_Write(adat1); Usart_Write(adat2); Usart_Write(adat3); Usart_Write(adat4); Usart_Write(adat5); Usart_Write(adat6); end; segítséget előre is köszönöm
Minden bájt vétele előtt várakozni kell a következő adatra, ha a program gyorsabban dolgozza fel az adatokat, mint ahogy azok megérkeznének (tehát nincsenek a pufferben).
Tehát minden bájt után várakozol a következőre (felhasználva az usart data ready függvényt), vagy fix értékű késleltetést is beépíthetsz.
próbáltam az usart data ready függvényt minden olvasás elé betenni, de nem volt jó, megpróbálom az időzítést is.
Köszi
Szerintem a vétel - adást egy 6 szoros ciklusba kellene tenni. Az adat változó meg egy 6 elemű tömb lenne.
Bár ez utóbbi is fölösleges mert gondolom az adat változó tartalmára nincs szükséged később így egy síma byte változó lehetne.
Próbáld így:
A fenti megoldásnak azért vannak veszélyei, ugyanis adatátviteli problémák miatt végtelen ciklus, esetleg az adatmezők eltolódása is kialakulhat (megfelelő technikával ezek elkerülhetők). |
Bejelentkezés
Hirdetés |