:: Szavazás ::
Milyen hatással van rád a benzináresés?
|
- Fórumok -
Tuning, fejlesztés - új hozzászólás Összesen: 50 oldal
"Nincs igazán szükség ötletekre, mert tudom hogy működik."
Ebben nem kételkedtem, hanem arra gondoltam, hogy meglát(hat)tad volna, le lehet-e választani pl. a motorvezérlőt a panelról. Ahogy nézem, mivel mind a 4 motor 4 vezetéke az említett ASSP3-ba fut bele, lehetetlen bármit leválasztani.
Na, nem baj, lényegében akkor van pár motor, a többit meglátjuk.
Ja, azt elfelejtettem, van tömbvázlat róla, meg (működési) kapcs.rajz.
üdv.: R
Azt a szorzást írtó bonyolultan csináltam meg, mert én találtam ki az algoritmust, később láttam hivatalos szorzó algoritmust, az lényegesen egyszerűbb....és logikusabb is :)
Már nem tudom mit csináltam, de a lényeg az, hogy a 8bites értéket 16bitre interpolálja fel, de iszonyat bonyolultan, szóval szerintem ne foglalkozz vele.
Őszintén most, hogy nézegetem a saját régi programom egyre inkább szégyenlem :D bár ahhoz képest hogy teljesen autodidakta módon tanultam ezeket mégis büszke vagyok rá :)
Na de a lényeg, hogy szerintem csak érdeklődés szintjén foglalkozz vele, mert sokkal jobb megoldások is vannak erre a problémára.
A retlw parancs az a szubrutinból visszatérés parancsa. Olyan mint a return, csak L értéket berakja visszatéréskor a W-be.
Jó 5let a folyamatábra. Volt most egy olyan házifeledatom digitből, hogy írjak Johnson számláló progit i8085-procira ASM ben. És megnéztem az összefüggést a számok (kódok) között és csináltam ábrát és megírtam a programot ami a szimulátorban jól is működött. A gyújtásra visszatérve most a szorzást néztem de nem teljesen vágom hogyan csinálja. Mi az a gyszög és miért decimális 126 az értéke? És azt sem értem hogyan jön bele a szorzásba a TMR1 alsó 8bitje : (
Láttam pár megvalósítást ASM programot előgyújtás szabályzóra, de mind azzal a retlw megoldással volt. Annak mi a lényege és hogyan működik?
PIC-es fejlesztők! Képzeljétek mit csináltam.
Annyira elbonyolítottam a legújabb előgyújtás vezérlőmet, hogy már én magam sem láttam át. Már azt is csak alig értettem, amivel Prince86 küzd jelenleg, de ezzel az újjal túlléptem felfogó képességeim határát.
Ezért olyat csináltam amire a tanáraim nem tudtak rávenni szépszóval. Folyamat ábrával terveztem meg az egész programot és csodák csodájára így pontosan áttekinthető, érthető az egész program működése. Igaz hogy sok időt elvett az ábrák tologatása, de sikerült olyan szintig felbontanom részfeladatokra, hogy maga a kódolás ezek után gyerekjáték és villámgyors lesz.
A másik, hogy a program későbbi okosítása is egyszerűbb a folyamat ábrába segítségével.
Szóval csak ajánlani tudom, hogy a program tervezését folyamatábrával csináljátok meg, ne program írás közben találjátok ki, ahogy én szoktam :)
Nincs igazán szükség ötletekre, mert tudom hogy működik.
A motor kivezetésére van kötve 2db tranzisztor vagy FET híd, ami vagy 8db külön lévő 3 lábú valami +4 kisebb háromlábú az inverz jelek miatt, kb ugyan ennyi ellenállás, de lehet az egész integrálva is 1 vagy 2 IC-re, erre megy rá 4 vezetéken egy léptető motor vezérlő, amire megy rá egy dekóder ami a CAN busz jeleiből kiszedi a szükséges értékekekt és binárisan továbbírja a léptető motor vezérlőre, vagy pedig ez a kettő egyben van valami kis processzorban, ami esetleg vezérli az összes műszert egyszerre, illetve a szükséges visszajelző LED-eket.
Visszajelző LED-ek esetében azt is el tudom képzelni hogy közvetlen vezetékről kapja a jelet, az üzembiztonság érdekében, ilyenkor esetleges illesztő egység lehetséges a LED előtt.
Szóval manapság már nem könnyű ötletet lesni mert az okosság a softverekben van többnyire.
Ha maga a motor vezérlő külön van az használható a motorral együtt, a processzort pedig nekünk kell elérakni.
Próbálni nem tudsz semmit önmagában, de ha mégis 5V tápfesszel kezdenék, aztán lépnék 12V-ra. Szerintem 12Vról megy és a panelon oldják meg a fesz. csökkentést/stabilizálást, mert a hosszú drótok sok zavarást tudnak összeszedni, de jobb az óvatosság, hátha tévedek.
Aztán szabvány CAN buszos jelekkel lehet hergeni, de gondolom nincs ilyen diagnosztikai műszered ami ismeri az adott típús kódjait.
PIC-el megoldható CAN jelek generálása, azt hiszem Árpi kedvence alapból tudja, de a kódokat akkor is ismerni kellene.
Igen, a jelek összejönnek innen-onnan, befutnak a motorvezérlőbe, az pedig kiossza az ABS-, BCM- stb. moduloknak.CAN hálózat köti össze az egymással kommunikáló elemeket.
No, de nem is arra gondoltam, hogy továbbhasználat, hanem ötletek, meg pl. mi van a motor 4 lábára kötve, honnan lehet tudni, mi micsoda, hogy lehet kipróbálni, anélkül, hogy elfüstölne, ilyen hasonló kérdések.
De ha fordulatmérőhöz elég a puszta motor, az is jó.Esetleg km. órához csinálok én jeladót, meg minden más fizikai alkatrészt természetesen.
Nagyjából erre gondoltam.
üdv.: R
Á, nem kell ez túl bonyolultnak tűnik a további felhasználásra, valószínűleg a mérés nem itt történik hanem az injektor computerben és onnan jön át digitálisan az info.
Valóban jobb lenne ha az EPROM helyett a programmemóriát is leetne használni. Egy az, hogy több hely lenne a másik meg az hogy gondolom gyorsabban lehet olvasni mint egy eeprom-ot. Ahogy tegap nézegettem a programot már értem miért írtad azt hogy a jeladót a maximum előgyújtás+az áramkör késleletése elé kel állítai. Godolom azét mert időbe tellig amíg elvégzi a szorzó műveletet s mégtöbb idő míg olvassa az epromot.
Igen, kétoldalas sm panel, rajta minden, kb 30 funkció, autó műszerfal volt, de ép még.A motorok (4) egy ASSP3-ba futnak bele, közelében valami ULN2003A, a másik oldalon 3 egyforma TPIC6C596.
Szép lencsés kocka ledek (oldalra sugárzó is!), a többi cucc passzív elem, ill. van egy valami tranyóra hasonlító, de ötlábas (párosított?).
A motorok kb. akkorák, mint mondod, négy rugalmas lábon támaszkodik a panelon, bepattintva.Ja, meg egy 19 bemenetű lcd kijelző a km. számlálónak.
Csináljak képet holnap, vagy küldjem el levélben esetleg?
üdv.: R
JDM-mel kezdtem. Elég sok hátulütője van. A paralel porton keresztüli soros programozók jobbak, mert korrektebbek a szintek. PL a Tait félék. A 13.5 pedig magas.:) Nekem 5 volt kell. :) Akkor nem kell a paralel portnál szint illesztéssel bajlódni.Azt hiszem, csak a 18f sorozat tudja.Ha betöltök boot loadert, már lehet usb porton keresztül egy az egyben progizni őket. Ugyanis nemcsak az USART, hanem az usb is része ezeknek.A sorozat komolyabb darabjai rádiót is, usb is, usartot is tudnak.Vagyis gyakorlatilag minden fajta komunikációt.Nem olcsó jószágok, elég bonyolultak, de sokat tudnak, kevés dolgot kell meléjük tenni bármilyen áramkörben.Állítolag holnap jön mani, holnapután feladom a rendelést, csütörtökön jön a friss játékos.De lehet, hogy most egyszerre többet rendelek. De nem 18f2550-et, mert nem forasztok félraszteres felület szereltet egy darabig.
Szertném végre azt kipróbálni, hogy az analóg csatornája hogy viszonyul a piezzó beeperre, mint mikrofonra. Kell e erősítő, vagy tudja egyből érzékelni a szintet.A piezzó lesz az ütésérzékelő. Aztán majd kap 1300 pénzért egy halos dőlés érzékelőt. De ha kettő ilyent teszek bele, akkor még a féklámpa kapcsolót is megspórolom.:) Intenzív fékezéskor ugyanis jelez a hosszanti tengelyen elhelyezett dőlésérzékelő.Nem az orra bukást érzékeli, hanem a gyorsulást.Ki kell próbálni mekkora lassúlást, gyorsulást érzékel.Lassan már én se kellek már a motorra, elmegy majd magától is.:) Ha tuljutok a pic égetőn.:))))
Panel is van?
Valami áramkör van rajta?
Lehet hogy az egyből használható lenne.
Milyen nagy?
Nekem floppy létető motorjaim vannak, ezek kb. 15-25mm átmérőjűek.
http://www.instructables.com/id/SDG140KFEQHFHZ7/
Tessék ez működik, én is ilyennel nyírtam ki pár PIC-et :) na nem azért mert rossz az égető csak a notebook nem ad ki elég feszültséget és kívülről kapcsoltam rá jóval nagyobbat :), de asztali gépeken elvileg nincs ilyen probléma.
13,5V az alacsony feszültség? :)
Az kell ezeknek, és soros porton megy, ami elvileg kiad ekkora feszültséget szóval elvileg ez is egyszerü.
Keress rá a JDM programozókra.
Még rajta vannak a panelon (SM), ott nem látom, de lebontom nemsokára és jelentkezem.
A nap mondása lehetne: "szabin vagyok, nem érek rá semmire..."
üdv.: R
Tudom, válogatós vagyok, de kell az LVP programozási lehetőség. Ha az nincs, akkor sokkal bonyolultabb égetőt kell építeni.Ha van alacsony feszültségű programozási lehetőség, elég lenne elvileg egy ellenállás és egy paralel csati. A biztonságossabb megoldáshoz egy meghajtó IC kell plusszban.Ha jól helyezi el az ember, még a csati burkolatában is elfér.
Van egy marék 12F683-asom párat tudok adni, illetve 2db 16f890 (asszem) ebből csak egyet adok, mert úgy néz ki erre a legjobb megcsinálni a gyújtást, mert lehet közvetlenül a FLASHből olvasni adatot, így 2k*14bit memoria áll rendelkezésre és ez sokat javít a gyújtás finomságán.
A folyamat ábrát mát megterveztem hozzá, már csak össze kéne lapátolni, de sokat ront a helyzeten hogy szabin vagyok ezért nincs időm :D
Találtam tuti jó, egyszerű égetőt LVP programozásra. Hozzá egy parallel csatit is. Csak picem nincs már, úgy néz ki. Akármit csinálok, mindig sok F-et ad tartalomnak.Pár nap, kapok manit, megrendelem a következő áldozatot, aztán mehet minden tovább. Fogadjunk, hogy előbb lesz előgyújtás szabályzóm, mint nektek, feltuningolva GSM riasztóval.:) Sőt, még talán a kilométer, fordulatszám mérő is meglesz hamarosan. Ha nem döglik meg megint ideje korán a pic.:)
Megcsinálja! Már csak azt kell beírnom ide a stimulusba hogy a tmr1-nek adjon értéket és akkor tovább megy a szorzórészre is. Minjá ki is próbálom. Köszi a segítséget.
Rajta van ez is az elvégzendők listáján.
Csak annyit mondj, hogy 4 vagy 6 vezeték jön ki belőle? (esetleg 8)
Nem értem mit kínlodik ezekkel. Nem használok olyan mély stack-et, sőt igazából nem használom a stack-et.
Sleepnél különben az a dolga, hogy megakadjon :)
Van egy olyan hogy PIN stimulus. Ott beadhatsz kézzel rákattintva egy jelet a tetszőleges lábra, akkor fel kell ébrednie és tovább futnia, ha jól van beállítva a megszakítás vezérlőd.
Megvan a bibi. Úgylátszik, nem vagyok formában. Rosszul forrasztottam be egy lábat. Hiába, félraszterest forrasztani a jelenlegi pákámmal nem az igazi. Persze a kezem is jobban remeg mint régen. Ha belegondolok, hogy egy-két tíz évvel ezellőt még negyedraszterest is is tudtam forrasztani....Azért a bolt is feltüntethette volna jobban, hogy miniatűr a jószág. Igaz, mint utólag kiderült, a gyári adatlap is dpnek jelöli. ami elég érdekes, mert csak felület szerelt félraszteres van ebből a tipusból.Mindegy, legközelebb a méreteket is megnézem a rajzon, nem csak a jelölést.
"Gondolkodtam hogy inkább a fordulatszám mérő vezérlést kellene leprogramozni, de az annyira egyszerű, nem kihívás ezért nincs is kedvem hozzá :D"
Kár pedig, mert éppen van a fiókban pár léptetőmotor, amelyeket eredetiben is erre használnak, mondhatom, igen kicsi méretűek.Esetleg elolvasom rajta a típusát, meg készítek képet, ha érdekes a téma.
Nem muszáj éppen neked csinálni, lehet, hogy mást is érint a dolog...
üdv.: R
Ja, a motorok egyformák, csak a meghajtásuk más, mert ugyanaz a szabványos egység lehet fordulatmérő, km-óra, hőmérő vagy üzemanyag-szintjelző is.
A sleep utáni BANKSEL nél akadt el a CLDTS címkénél lévőnél. Tettem egy pontosvesszőt a sleep elé és rögtön továbbment ezen a BANKSEL-en is. Most a RETFIE után írja azt hogy Stack underflow és még utána valamit. Nem elég a Stack mélysége vagy mi?
Jah és hogyan lehet szimulálni a megszakításkérést? elmegy sleep-be és hogyan ébresszem fel az mplab ban? Mert így nem tudom végignézni hogyan fut.
Viszont ha ez vígasztal én is elakadtam kicsit.
Akkor vettem égetőt én is amikor elfüstöltem a házi égetővel az 5. csippet és a fejlesztés abból állt hogy megpróbálom rávenni a vackot az égetésre.
Azóta sokkal simább az arcom és koncentrálhatok a valódi munkára.
Valami 5-6ezer forint és próba panel is van a készletben, szóval egyből ki is próbálhatom a gyakorlatban.
De jó nektek.... Én valahogy már az égetőnél megragadtam.:( Ha lessz egy kis pénzem, előről kezdem a dolgot még tudományossabban. Mondjuk jobban vigyázok arra, hogy ne félraszteres picet kapjak.Bár azt még megoldottam valahogy.Tudom, vegyek pickitet. De nekem elég drága. Bár ha ennyit szívok, lehet hogy bejönne az ára.Talán ha sikerülne printer kábelt találnom ithon, az segítene, akkor még pár féle égetőt kiptóbálhatnék. Bár valszeg meghalt már a pic.:( Mindegy, pár órát még próbálkozom, aztán sírvafakadok.
Nem a BANKSEL az az MPLAB utasítása...bár tény hogy mostani változatokon nem próbáltam a működését.
Ja ha a program kezdetén nem csatolod az INC filet akkor sem tud értelmezni.
Persze nekem futott a debugerrel gond nélkül. Viszont sokkal régebbi MPLABot használtam, lehet hogy foglalt már ez a cimke. Cseréld ki a LOAD cimkét valami másra.
Ha a banksel-en akad fen, akkor valószínüleg nem T1CON-nak nevezi a timer 1 control regiszterét, ezért nem tudja értelmezni.
Ezt a doksiban meg tudod nézni hogy minek nevezik mostanság.
Az MPLABban használt elnevezések ugye egy egy hexa címre használt cimkék, amit az MPLAB suite könyvtárban chipnév.INC fileban találsz.
Itt adhatsz saját neveket is neki.
Amúgy a BANKSEL az csak annyit csinál hogy beállítja a 4 regiszter lap közül azt amelyiken az utána írt regiszter található, tehát ez egy fordító direktíva. A kódban csak két BSF vagy BCF kezdetü sor jelenik meg ennek hatására a megfelelően beállítva.
Sőt mégjobb: 16f890 ennek is 256 az eepromja, viszont szoftverből lehet olvasni a FLASH ROM-ot, vagyis ahol nem program van azt használhatod adat tárolásra is, így viszont legalább 3kbyte memóriád van. Igaz hogy ez már 600 forint, de van rajta UART is vagyis megoldható hogy soros porton keresztül üzem szerüen modosíthass a jelleggörbén.
Persze a fejlesztési szakaszban mindegy mivel próbálod ki. Átrakni másik PIC-re nem olyan vészes a saját programot.
Vagy az is lehet hogy a BANKSEL parancs nem képezi a 628 utasítás készletét. ÉS a status regiszter megfelelő bitjeinek állításával kell váltani a bankok között.
Kérdés:
Végig futtattad a programot az MPLAB debuggerjével? Nekem megakad a LOAD-os dolognál. Ha pontos veszsőt teszek elé tehát kikommentezem akkor tovább megy de csak addig hogy BANKSEL T1CON.
Szerinted ez így jó?
Köszönöm, megkaptam! Igen számolgattam és rájöttem hogy magas fordulaton nagy a különbség a rekeszek között. Mármint ha 7bitet használok címzésre. Kipróbálásra jó lesz ez a 628 aztán ahogy javasoltad áttérek a 12F-esre.
Ha még eszembe jut valami kérdés akkor írok : )
a zöld cellák a bemenő adatok, a többit ne írd át...illetve átírhatod nem tiltom meg :) 16bites számláló és 256byte eepromra van kitalálva a tábla.
Najó, megszántalak, átküldöm az EXELtáblát amit használok :)
LEg egyszerűbb a program végén található fordító direktívával. Ez olyan utasítás ami nem kerül bele a tényleges programba, hanem az égető ennek hatására szép sorban berakja azokat a számokat az Epromba
Igen ez a 128byte kevés.
Ha számolgattál akkor rájöhettél, hogy 128byteos memoriánál 7 és 8ezres fordulat között csupán egyettlen memoria rekesz különbség van.
Ha interpolálsz a TMR alsó bitekkel akkor ez azért fonomodik...végülis így már elfogadható, de jobban érezném magam ha interpoláció nem az alapvető működéshez kellene, hanem a működés finomítására.
Ezért használok 12F683-ast az olcsó belső és állítható órajele van, és 256byte EEPROMja van neki.
Esetleg lehet memoria bővítést rátenni ahogy Árpád javasolta, de akkor azzal külön foglalkozni kell...bár az eredeti programot nem bonyolítaná ez sem, csak a sima eeprom kiolvasást kell kicserélni a külső eeprom kiolvasás utasításaira
Minél többször nézem át a programot annál több dolog lesz világos benne. Már nagyjából átírtam 628-ra de elég darabos lesz a vezérlés emiatt a 128 bit miatt.
Az epromba hogyan tudom betölteni a számokat címszerint? Úgyértem hogy minden szám az általam kijelölt címre kerüljön.
Ja, szóval arra akartam kilukadni, hogy elkezdtem újra megírni.
Funkcióiban nem, de pontosságban szerintem jelentős javulást tudok elérni.
Az új ötleteimmel a legrosszabb pontosság kb. 0.1fok lesz ezt bármelyik fordulaton tudja majd, és ez már elegendő a stabil járáshoz.
Persze nem leállni a dologgal a többieknek, mert nálam elég hosszú a fejlesztési időszak, az előzőn is 2 évig gondolkodtam (persze nem folyamatosan) :D
Gondolkodtam hogy inkább a fordulatszám mérő vezérlést kellene leprogramozni, de az annyira egyszerű, nem kihívás ezért nincs is kedvem hozzá :D
Valójában erre a programra alkalmasabb lenne a Pascal, szóval Árpád mint Pascal guru, tied a feladat, az elméleti működésben szívesen vitatkozok veled, de a programozást megnyerted :)
Kedvet kaptam az előgyújtás vezérléshez én is :)
Ennek kapcsán nézegettem ezt a pascalt, de ebben is a regiszterekben kell turkálni.
Amivel egyszerűbb az az aritmetika, de ehez van szubrutin gyújtemény az ASM-ben is szóval abban sem nekem kell megírni, legfeljebb Pascalban átláthatóbb.
Szóval nem tetszik :)
Az hogy pár funkciót rövidebben le tudok írni valahogy nem ellensúlyozza az, hogy nem látom mit csinál pontosan, ami egy szöveges LCD vezérlésnél illetve telefonos kommunkikációnál nem gond, de ez a gyújtás vezérlő program pl. határozottan rosszabb pontosságot tudna produkálni Pascalban mint ASM-ben megírva, mivel egy fordító nem képes olyan optimalizálásra mint én.
Pl. autómata áramkörtervezőt sem szoktam használni, illetve csak kézi rajzolásra :) mert én lényegesen egyszeűbbre tudom optimalizálni, ami gyártás, áttekinthetőség és hibajavítás szempontjából nem mindegy.
Még jó hogy a PIC nem nagygépes környezet, ezért nem kell beleőszülni a gépikódba :D
Mert te a 286-oa korban tanultál programozni.:)
Én valamivel előbb. Az intel 8080 volt az első mikropocesszor amivel foglalkoztam.Aztán jöttek a Zilog procik és a CP/M operációs rendszer.Aztán egy kis idő a nagygépek világában. Ott aztán ha nem volt jó elődöd, és neked kellet volna megirnod az összes ASM rutint, megőszültél volna. Te már csak a turbo Pascált ismerted meg, ami egy lehülyített változata a Wirth féle Pascalnak. Pedig azt még ISO szabvány is védte, mert előre látó volt az alkotó. De a Microsofttal ő sem számolt, az tönkrevágta rendesen, szabvány ide vagy oda. Én is csak azért használom, mert lusta voltam újat megtanulni.
Hogy honnan szereztem a mikropascalt, az jó kérdés.Azt hiszem a microchip honlapjáról, de ez nem biztos. Az sem biztos, hogy nem demó. Látszatra müxik. Valós picen történő kipróbálása késik, mivel sikerült fél raszteres picet szereznem, és még a nyák sem sikerült eddig, valami gáz van a marató folyadékommal, bemar a festék alá.:( Most éppen maródik egy megint, ha véletlenül sikerül, elkezdem a forrasztgatást.
Visszatérve a mikropascalra: ha véletlenül demó lenne, akkor valszeg megtalálom torrent formában feltörve valahol. Ne tudd meg, idáig mi mindent sikerült már így összeszednem.:) Csak a progi neve kell, aztán már le is loptam.:)))
Gondolom a számláló megszakítása hozza vissza, a gyújtás időpontjában.
Az INT pedig akkor van bekapcsolva amikor a jeladót várja. Nincs előttem a program...arra sem emlékeztem hogy használtam SLEEP-et :)
Azért kell két Goto load, mert sleepből megszakítással visszatérve nem biztos hogy a az első utasítást végrehajtja.
Te Árpi, honnan van neked mikroPascal.
Gondoltam megnézem, de csak fizetős letöltések vagy demo verziók vannak.
Most már tudom hogy pont ezért nem foglalkoztam vele eddig sem :D
Amúgy én már fiatalon rámentem a gépi kódra mert a Basic nem elégített ki, még a 286os korában.
Pascalt csak később a fősulin tanítottak, illetve ott is inkább a C-re mentek rá.
Valójában a C egy egyszerűsített ASM vagyis egy ASM szubrutin gyűjtemény amiknek a meghívását kezelhetőbbé tették.
A Pascal pedig ennek a további egyszerűsítése....A BASIC pedig az a programozási nyelv amiből kihagyták a gépet :D Így embernek egyszerűbb de igazi programra gyengén alkalmas.
Mostanában a Java képviseli ezt a programnyelvet. Na azt programozni baromi kényelmes, de megpróbáltam az ott tanult objektum orientált elveket használni, de ASMben lehetettlen megvalósítani és a többi nyelvben is elég nehézkesnek tünt számomra.
Talán a Delphi ami ezt lehetővé teszi.
Persze lehet, hogy egy informatikus tépi a haját ezeken a kijelentéseken :D
Én nem sokkal, egy-két évvel a basic után tanultam pascalban programozni. Úgy 1984 körül. Azőta már el is felejtettem, hogy kell.:) Azóta vagy gépi kódban, vagy pascalban, basicban dolgozom. ASM nagyon kevés volt életemben, hál istennek.:)
Holnap állítolag megérkezik a 18f2550 meg a próbapanel. Meg pár apróság.Holnap után a pic ledet villogtat majd, hogy lássam müxik. Csütörtökön jön a komunikáció a telefonnal. Aztán ennek finomitása pár héten, hónapon keresztül.:) Ha tavasz előtt elkészülnék, utánna belekezdek az előgyújtásba.:)
A PIC műveleti sebessége mindig negyede az órajelnek, így a számlálás sebessége is.
Próbáltál már hangkártyát programozni pascalban, basicben, vagy C-ben?
Bármelyiket választod biza ott is turkálni kell a regiszterekben.
Amúgy meg lusta vagyok megtanulni egy újabb nyelvet amikor ASM-ben régóta tudok programozni :)
Közben rájöttem hogy be lehet állítani a T1CON regiszterben hogy honnan vegye az órajelet. Így a 20MHz es quartzal és 1:8 as előosztással az 1000 alatti fordulat már túlmegy a felső 7. biten. Úgy néz ki hogy 10Mhz-est kell majd használnom.
Remélem a rúgás sebessége eléri az 500as fordulatot. Van az a rész a programban hogy:
MOVLW B'11010000' aztán MOVWF INTCON és azt írod ezzel letiltod az INT megszakításokat. Ezután SLEEP parancs jön és GOTO LOAD címkére mely címke után ugyancsak a GOTO LOAD áll. Na most ebből hogy fog kilépni a program? Ha tiltva van az INT akkor hogy ébreszted fel a SLEEP ből a PIC et? És a GOTO LOAD ból hogy lép ki?
Számolgattam kicsit!
A TMR1 léptetése milyen mértékben történik? A külső órajel negyedével vagy a külső órajellel?
Eddig amit számoltam:
20MHz-es kristály esetén 20000000/4=5000000 tehát másodpercenként 5000000-val lépteti a számlálót. Ennek a periódusideje 1/5000000=0,0000002s
pl 8000-es fordulatnál az jön ki hogy: 8000/60=133 ebből következik hogy 1/133=0,0075
Megnézem ez idő alatt meddig számol el a számláló: 0,0075/0,0000002=37500 ami már nem jó mert a legnagyobb érték esetén ami 16-1bit ami 15bit és ez 32767 es értéknek felel meg. Ez az érték aminél még nem kell a felső 8. bit.
Előosztás nélkül számoltam ezeket. De nem tudom pontosan hogy a TMR1 az órajel negyedével léptet e vagy magával az órajel sebességével. És egyértelmű választ nem láttam a neten erre!
Összesen: 50 oldal
Az itt olvasható hozzászólásokért nem vállalunk felelősséget.
Ha úgy gondolod, hogy egy hozzászólás méltatlan, kérjük olvasd el moderálási alapelveinket.
|
|
|
|