hu
: Főoldal : : Fórumok : : Feliratkozás a levlistára :
2018. december 15. szombat 
Valér

:: Egy kép ::

:: Címlista belépés ::
email:
pass: 

:: Szavazás ::
Milyen hatással van rád a benzináresés?

Imádkozom, hogy tavaszig kitartson (61)

Már a kád is csurig benzinnel (10)

Eladtam az összes MOL részvényemet (2)

Hosszabb nyári túrákat szervezek (4)

Ez hülyeség, most is 5ezerért tankoltam, mint máskor (33)

Ez egy ilyen év, folyton esik (3)

Ideje kivenni a fojtást! (17)


:: Ajánlott böngésző ::

- Fórumok -
Tuning, fejlesztés - új hozzászólás

Összesen: 49 oldal

Keri
válasz erre | email2008-12-07 15:22:03
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.
sorszám: 2142 (105140)
(előzmény: Keri, 2008-12-07 15:13:18)

 
 
Keri
válasz erre | email2008-12-07 15:13:18
Najó, megszántalak, átküldöm az EXELtáblát amit használok :)
sorszám: 2141 (105139)
(előzmény: Prince86, 2008-12-07 14:16:59)

 
 
Keri
válasz erre | email2008-12-07 15:07:19
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
sorszám: 2140 (105138)
(előzmény: Prince86, 2008-12-07 13:50:45)

 
 
Prince86
válasz erre | email2008-12-07 14:16:59
128bájtot akartam írni.
sorszám: 2139 (105136)
(előzmény: Prince86, 2008-12-07 13:50:45)

 
 
Prince86
válasz erre | email2008-12-07 13:50:45
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.
sorszám: 2138 (105135)
(előzmény: Keri, 2008-12-03 09:21:12)

 
 
Keri
válasz erre | email2008-12-07 11:14:33
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 :)
sorszám: 2137 (105132)
(előzmény: Keri, 2008-12-07 11:00:36)

 
 
Keri
válasz erre | email2008-12-07 11:00:36
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.
sorszám: 2136 (105131)
(előzmény: Keri, 2008-12-03 12:55:15)

 
 
Keri
válasz erre | email2008-12-03 12:55:15
Még jó hogy a PIC nem nagygépes környezet, ezért nem kell beleőszülni a gépikódba :D
sorszám: 2135 (105023)
(előzmény: Árpád, 2008-12-03 09:53:31)

 
 
Árpád
válasz erre | email2008-12-03 09:53:31
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.:)))
sorszám: 2134 (105020)
(előzmény: Keri, 2008-12-03 09:18:19)

 
 
Keri
válasz erre | email2008-12-03 09:21:12
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.
sorszám: 2133 (105017)
(előzmény: Prince86, 2008-12-01 11:01:25)

 
 
Keri
válasz erre | email2008-12-03 09:18:19
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

sorszám: 2132 (105016)
(előzmény: Árpád, 2008-12-01 19:50:24)

 
 
Árpád
válasz erre | email2008-12-01 19:50:24
É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.:)
sorszám: 2131 (104959)
(előzmény: Keri, 2008-12-01 19:19:35)

 
 
Keri
válasz erre | email2008-12-01 19:21:14
A PIC műveleti sebessége mindig negyede az órajelnek, így a számlálás sebessége is.
sorszám: 2130 (104955)
(előzmény: Prince86, 2008-12-01 10:22:27)

 
 
Keri
válasz erre | email2008-12-01 19:19:35
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 :)
sorszám: 2129 (104954)
(előzmény: Árpád, 2008-11-30 22:22:25)

 
 
Prince86
válasz erre | email2008-12-01 11:01:25
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?
sorszám: 2128 (104926)
(előzmény: Prince86, 2008-12-01 10:42:39)

 
 
Prince86
válasz erre | email2008-12-01 10:42:39
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!
sorszám: 2127 (104924)
(előzmény: Keri, 2008-11-30 21:34:14)

 
 
Prince86
válasz erre | email2008-12-01 10:22:27
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!
sorszám: 2126 (104922)
(előzmény: Keri, 2008-11-30 21:34:14)

 
 
Árpád
válasz erre | email2008-11-30 22:22:25
Miért, a pc-m is egész jól elmüxik, a pascal progik is rajta, pedig még bele sem olvastam, milyen regiszterek , stbk vannak egy P4 prociban.:) Ez a jó a fordítókban. többé kevésbé használhatók, még se kell lemenni gépi programozási szintre.Amit már megírt más, nehogy már én is megcsináljam.:) A lustaság mindig célravezetőbb, mint a felelőtlen lelkesedés.:)))))
sorszám: 2125 (104912)
(előzmény: Keri, 2008-11-30 21:48:33)

 
 
Keri
válasz erre | email2008-11-30 21:48:33
Valójában sokkal egyszerűbb mint a régebbi procik.
Ezért is nem probléma az assambly...az meg nem biztos hogy fog is működni ah nem tudod pontosan hogyan működik :D
sorszám: 2124 (104910)
(előzmény: Árpád, 2008-11-30 18:39:29)

 
 
Keri
válasz erre | email2008-11-30 21:45:54
Mondjuk én nem vonnám össze a különböző funkciókat egy nagy prociba.
Inkább 3 kicsi olcsó, egyszerű.
A multitaszk programozás, főleg ha nem csak 1 pontos időzítés is van benne nem nekem való feladat. A fordulatszám mérő és a gyújtás is igényli a pontosságot és ha ütközés lép fel akkor valamelyik hibázni fog.
sorszám: 2123 (104909)
(előzmény: Árpád, 2008-11-30 16:13:54)

 
 
Keri
válasz erre | email2008-11-30 21:39:11
Amatőr :DDD
Én már azt is kitaláltam hogy tudja saját magát folyamatosan az optimális paraméterekhez programozni a gyújtás :D

De ez túl bonyolult, és nagyon nincs kedvem elmagyarázni :)

Leg egyszerűbben egy kopogás jelző szenzorral lehetne megoldani.
Nagyon lassan növelni kell az előgyújtás értékét és amikor elkezd kopogni akkor visszavesz.
sorszám: 2122 (104908)
(előzmény: Árpád, 2008-11-30 15:29:37)

 
 
Keri
válasz erre | email2008-11-30 21:34:14
Nem beszélsz hülyeséget, de ha beszénél sem probléma, én sem úgy tanultam meg hogy kapásból mindent tudtam.

Ahogy írod. Lehet csökkenteni a használt memória méretét, legfeljebb az időzítéseket kell úgy kiszámolnod hogy a felső maradék 1 bitet ne használja üzem szerűen.

DE javaslom a 12f683-as PIC-et.
Ez mindent tud ami neked kell és olcsó is. Én mostanában mindent erre fejlesztek.

Viszont felhívnám a figyelmedet, hogy a 8bit felső értéke valóban 255, de 256 címet tudsz meghatározni mivel a 0 is szám.
sorszám: 2121 (104907)
(előzmény: Prince86, 2008-11-30 15:18:05)

 
 
sunbim
válasz erre | email2008-11-30 20:08:48
Hajrá Árpi ! ;)
üdv.: Kiri
sorszám: 2120 (104891)
(előzmény: Árpád, 2008-11-30 18:39:29)

 
 
Árpád
válasz erre | email2008-11-30 18:39:29
A pic dolgot most kezdtem el igazából. De rutinos probléma kikerülő vagyok.:) A feladatokat csak akkor oldom meg, ha nem találok valami kerülő utat. Jelen esetben arra gondoltam, hogy a számos segéd dolog valamelyikét használom. Legvalószínűbb, hogy a mikoropascalt használok majd. De van még mikrobasic, mikroc is. C-re létezik ezen kívül számtalan fordító, ami picre íródott, de a C-t ha lehet kihagyom. Ezek segítségével nem kell sokat foglalkoznom a regiszterekkel. Plusszban van pár minta progi, előre megírt unit, procedura amit hozzá tudok fűzni átalíkítva a pascal progimhoz. Akár ASM-et is, ha nem tudom kikerülni.Szóval csak akkor kell belemennem a pic lelkivilágába, ha nem találok rá mikropascal cuccot. Lehet, hogy nem fogom elég pontosan tudni mit is csinál a picem, de csinálni fogja.:))
Amúgy annak idején, kezdő koromban sokat programozgattam különféle procikat, a picek sem lehetnek sokkal durvábbak.Persze azóta öregedtem egy picit, nem fog már annyira az agyam, de csak megy majd valahogy.:)
sorszám: 2119 (104880)
(előzmény: Prince86, 2008-11-30 17:46:17)

 
 
Prince86
válasz erre | email2008-11-30 17:46:17
Így van, nagyon drága a 16F877-es.
Majden eltaláltad milyen kilóméteróra meghajtás van a simsonomon. Magnómotor van spirál heylett. Lent a lánckeréknél van egy walkman motor ami méri a kerék fordulatot és egy ugyanilyen walkman motor van fent a nagy magnómotor mellett ékszíjcsatolással az pedig méri az óra fordulatát. Van egy műveletierősítős áramkör ami szabályozza a magnómotor fordulatát a lánckerékfordulat függvényében. Erre azért volt szükség mert Cagiva Elephan műszerfal van a somsonomon :D
Valóban jobb a 18as PIC de még a 16os programozásával is hadilábon állok sajnos. Riasztóhoz sem tudnám merírni a progit egyellőre : (
Ha topon leszek majd a programozásban akkor tuti megcsinálom majd a simsont vagy addigra már lehet hogy ETZ-t olyanra hogy egyetlen PIC vezérlejen mindent.
sorszám: 2118 (104877)
(előzmény: Árpád, 2008-11-30 16:13:54)

 
 
Árpád
válasz erre | email2008-11-30 16:13:54
A 16f877ben valóban van usart, van lehetőség az áramkörön belüli 5 voltos programozásra is, de 1314 forint. amit kinéztem picet, a 18f2550 csak 892 huf. :) Plussz mind a kettőnél áfa.Ugyanannyi lábuk van. Egyik tudását se tudom teljesen kihasználni.:)
Amúgy a helyedben elgondolkodnék azon, hogy ha a nagyot választod, egy füst alatt megvan a riasztó, a gyújtásszabályzás, sőt szerintem belefér még a kilométeróra, fordulat mérő vezérlése, ha léptetőmotorosat szeretnél a spirál helyett.Szóval három az egyben, mint a kávéporoknál.:)
Jut eszembe egy poén, amit tavasszal sütött el motoros társ amikor panaszkodtunk a porra: Ez csak instant sár.
Amúgy nekem majd mindegy, milyen piccel kezdek a dologhoz.Semmilyen nincs ithon, meg kell rendelnem, mert ebben az időben már nem motorozok, a BKV pedig felejtős.Nincs sok pénzem, de hétszáz forint különbség nem éri meg, hogy a kicsit vegyem, aztán szívjam esetleg a fogam, vagy megint rendelnem keljen.. A nagy nagyobb, de azért nem lesz tragikusan nagyobb a kész cucc. Max 2-3 négyzetcenti lehet a különbség.Majd megy a cucc hátra a doboz és a csomitartó alá, van ott még hely bőven.
sorszám: 2117 (104874)
(előzmény: Prince86, 2008-11-30 15:36:15)

 
 
Prince86
válasz erre | email2008-11-30 15:36:15
Látom te már nem ma kezdted. :)
Profi az elgondolásod. De nekem nagyon jó lenne most a 16F628-al mert van belőle egy itthon ás tudnám tesztelni élesben.
Feleslegesen nem akarok venni 16F877-est mert ha mégsem jön össze akkor van egy fölösleges 877esem. Amúgy a 877-ben is van USART.
sorszám: 2116 (104873)
(előzmény: Árpád, 2008-11-30 15:29:37)

 
 
Árpád
válasz erre | email2008-11-30 15:29:37
He he. Én ezért fogom a riasztó progit mikropaskállal csinálni.:) Semmi címzési gond, semmi regiszter manipulálás.Legfeljebb néha, végszükségben.:)
A riasztóhoz lábra, kapacitásra bőven elég lenne a 8 lábú pic.Viszont jó lenne ha lenne a picen haedveres usart(RS232höz) Az viszont csak 18fxxxnek van, ha jól látom.Azokat viszont lehet programozni nemcsak az áramkörben, hanem működés közben is. Tehát marad egy csomó használatlan láb, memória. Azt hiszem mégis csinálok előgyújtás vezérlést is, elfél a riasztó mellé a picbe. Ráadásul menet közben tudom majd változtatni az éppen aktuális fordulaton az előgyújtás értéket, mivel ugyebár programozható futás közben.Tehát két lábra meg egy növelő és egy csökkentő kapcsoló. Ezeket a gázmarkolat mellett helyezem el mint egy index kapcsolót.Ha növelni akarok, katt fölfelé, ha csökkenteni lefelé. Nem kell kiszedni a jószágot és laptoppal, vagy számítogéppel macerálni.:)Legalábbis egyenlőre így álmodtam meg.:)
sorszám: 2115 (104872)
(előzmény: Prince86, 2008-11-30 15:18:05)

 
 
Prince86
válasz erre | email2008-11-30 15:18:05
Megnéztem excellben amit mondtál és valóban nagyon nem lineáris görbe jött ki! Elkezdtem átírni a progit 628-ra.
A 16F628 EEPROM kapacitása 128 bájt a 16F877-nek pedig 256bájt. Így bajban vagyok a címzéssel mert a TMR1 felső 8bitje ugye 255 címet tud, de a 628 EEPROM-ja 128 címmel dolgozik. (ha jól vettem ki az adatlapból) meglehet csináli hogy a TMR1H ból csak 7bitet használok? Lehet most nagy hülyeséget kérdeztem. Előre is bocsi!
sorszám: 2114 (104870)
(előzmény: Keri, 2008-11-29 19:49:09)

 
 
Keri
válasz erre | email2008-11-29 19:49:09
Nem jól érted, mert nem tudsz elszakadni a konvenciális mértékegységektől és az ebből eredő aspektustól.

Időt mérsz, azt az időt amennyi idő alatt 1 fordulatot megtesz a főtengely.
Az idő mérése a belső számláló ciklusaival történik, ennek a legkisebb időegysége egy is oszthatatlan, tehát ehhez kell viszonyítani mindent. Nem lehet osztani ezért nem számoljuk át megszokott mértékegységekből mert az nem jól használja ki a proci képességeit.

Egy példa:
Kiinduló adatok:
fordulat szélső értékei:
rpm 1:8000/1min=133/1s=1/0.0075s
rpm 2:400/1min=6.6/1s=1/0.15s

És itt a lényeg a vége mivel az egy fordulat alatt eltelt időt mérhetjük kizárólag. Minden mást csak számíthatnánk. DE céljainkra ez az adat meg is felel, mivel minden egyes fordulatot egyedileg azonosít, tehát alkalmas arra, hogy meghatározza a memoria rekeszt ami egy adott fordulathoz tartozik. DE nem ilyen lináris hiszen belátható hogy a fordulatszám és a fordulati idő 1/x szerinti összefüggésben van egymással.

Persze ezt így szöveg alapján lehet hogy nehéz felfogni. Én is csak azért értem mert én magyarázom :)

Ezért hogy te is megértsed Házi Feladat:
írj egy függvényt, aminek a vízszintes tengelyén a fordulati időt ábrázolod 0sec és 1sec között század másodpercenként, a függőleges tengelyen a fordulatszámot a fordulati időből átszámolva.

Nem fogom ellenőrizni :) de segít a megértésben.

Én Excelben szoktam ezeket a függvényeket megnézni, de akár négyzetrácsos papiron is megrajzolhatod ceruzával.

Tehát a TMR számláló időalapját úgy kell megválasztani hogy a felső 8bitnek esélye legyen végigszámolni a két szélsőérték között.
Ja és a szélső értékeket is érdemes inkább a proci adotságaihoz igazítani ami közelít a kívánt értékekhez.

Persze hogy át lehet írni.
Szükség van egy INT lábra, egy 16bites számlálóra aminek viszonylag szabadon meghatározhatod a számlálási frekvenciát, meg a többi amit írtál ezek mindegyik PIC-ben benne vannak tudomásom szerint.

Tudtommal mindig a 04-es címre mutat a megszakítás vektor PIC esetében, de ezt az adatlap tartalamzza.
sorszám: 2113 (104835)
(előzmény: Prince86, 2008-11-29 13:19:52)

 
 
crazydent
válasz erre | email2008-11-29 14:33:54
Most tényleg akció van, mint általában karácsonykor és húsvétkor:
http://www.roxel.hu/html/hasznos_infok.html

üdv, szr
ps. Sunbim: májusban, amikor Te vetted, nem volt akció :)
sorszám: 2112 (104829)
(előzmény: Keri, 2008-11-23 00:51:43)

 
 
Prince86
válasz erre | email2008-11-29 13:19:52
Tehát akkor az eepromban 255db értéknek kell szerepelni. Pl MZ ETZ 250 nél a fordulatot 8000ig akarom engedni akkor 8000/255=31,37fordulat/perc beosztással növekednek az értékek. Persze ha 0 fordulatról kezdeném. De már a rúgás fordulatszáma is kb 300-400/perc közötti érték. Na lássuk jól értem e amiket eddig írtál. A fordulatszámmal amit a TMR1 mér meghatározunk egy eeprom címet mely címen a fordulathoz tartozó érték szerepel, az az érték ami bekerül a szorzó műveletbe és a szorzás utáni eredménnyel késlelteti az előgyújtást. Bár nem tudom hogyan. Nem egy szokványos DELAY szubrutin az biztos :) Megnéztem a 16F877 és 16F628 felépítését. Ha minden igaz akkor átírható a program 16F628-ra ugye? Csak a memória helyeket kell átírni max és a mexakítást ha a 628-nál nem a 04 es címre mutat a mexakításvektor. Jól gondolom?
sorszám: 2111 (104828)
(előzmény: Keri, 2008-11-26 23:39:42)

 
 
Keri
válasz erre | email2008-11-26 23:39:42
dede, kell az eprom, abba írod be az előgyújtáshoz szükséges késleltetések értéket.
Csak azt mondtam, hogy ami értékeket én beírtam az csak a tesztelés miatt vannak benne, gyújtáshoz biztosan nem jó.

Úgy fogd fel mint egy sima két tengelyü függvényt. A memoria cím van a vízszintes idő tengelyen ami a főtengely fordulati ideje. A függőleges beosztás pedig a memoria tartalma, az az idő amivel késleltetni kell az indító jelhez képest.
A késleltetési időt pedig neked kell kiszámolni és beírni az EEPROMba, úgy veszed a fordulati időt, vagyis a memoriarekesz címét, osztod 360-al és szorzod az adott fordulaton kívánt előgyújtási szöggel.
A fordulatszám megfelelőséget ki tudod számolni a a TMR1 órajeléből, de ez legfeljebb saját magadnak a könnyebb áttekinthetőség miatt van szükség.
sorszám: 2110 (104771)
(előzmény: Prince86, 2008-11-26 17:43:31)

 
 
Keri
válasz erre | email2008-11-26 23:30:54
amit csináltam egy léptető motor vezérlés, de az is egyszerűbb.
sorszám: 2109 (104770)
(előzmény: Keri, 2008-11-26 23:29:38)

 
 
Keri
válasz erre | email2008-11-26 23:29:38
Á, azóta megjött az eszem és nem fogok bele ilyen nagy feladatba :)
Ez volt a csúcspont.
Meg ez inkább hobbi, nem munka, bár tény hogy a munkámban is tudom hasznosítani ezeket a tapasztalatokat.
Legutoljára ami
sorszám: 2108 (104769)
(előzmény: Prince86, 2008-11-26 17:00:01)

 
 
Prince86
válasz erre | email2008-11-26 17:43:31
Még egy kérdés!
Azt írtad az EEPROM csak a szimulációhoz kellett. Ezek szerint akkor nincs is szükség arra a részre? Nem kell EEPROM címet meghatározni? Elég a szorzás?
sorszám: 2107 (104747)
(előzmény: Prince86, 2008-11-26 17:00:01)

 
 
Prince86
válasz erre | email2008-11-26 17:00:01
Sok hasznos információval szolgáltál!
Szerintem nagyon furfangos programot írtál! Képzelem most milyen durvákat írhatsz. Remélem leszek egyszer ilyen szinten a PIC programozással.
Köszi a magyarázást!
sorszám: 2106 (104740)
(előzmény: Keri, 2008-11-25 17:19:50)

 
 
Keri
válasz erre | email2008-11-25 17:19:50
A MULC változót a szorzáshoz használtam.
Berakom a MULC-be és a MULI-be a két számot, meghívom a szorzás szubrutint ami kiszámolja. (még jó hogy azt mondtam nem használok szorzást :) Az eredmény pedig a PRO és PRO+1 címen jelenik meg.
sorszám: 2105 (104670)
(előzmény: Prince86, 2008-11-25 15:57:46)

 
 
Keri
válasz erre | email2008-11-25 16:58:04
Valójában nem tudom miért rakom oda, ha tényleg nincs használva :)

Valószínűleg eredetileg 16bittel akartam használni. Vagy volt olyan változat is amikor a két érték közötti különbséget osztottam az alsó nyolc bittel. Ezzel interpoláltam a táblázatban lévő értékeket, ezzel elvileg kvázi 16 bites volt a dolog. Erre azért volt szükség, mert 16bites táblázat asszem nem fért volna az EEPROM-ba.
Igen, lehet hogy ez a változat volt a végleges. Néz el nekem rég volt már.

Igen ahogy mondod, a BASE az az általam használt műveleti memória kezdőcíme.
A többi a változók ehhez viszonyított helye, és csak azért decimális mert így kényelmesebb volt számomra.
Végülis a változókra is azért van szükség, mert kényelmesebb velük dolgozni mint ha közvetlen memoria címet írnék, ráadásul ha át akarom szervezni a memóriát akkor csak az elején az értékadásnál kell átírni, a programban a változók maradnak ugyan azon a néven.

A TMR1 felső 8bitjét használva 256címet tud meghatározni. Ezek mindegyikébe be kell írni az adott fordulati időhöz tartozó késleltetési értéket. Ha valamelyiket kihagyod akkor valószínüleg ott nem fog gyújtani, mivel 0 értéket már az indítás pillanatában átlépi.

Tehát lesz egy fordulatszám ahol kimarad a gyújtás, vagyis soha nem fog ennél magasabb fordulatot elérni...hopp, ez tiltásra is jó.
sorszám: 2104 (104666)
(előzmény: Prince86, 2008-11-25 15:57:46)

 
 
Prince86
válasz erre | email2008-11-25 15:57:46
Na szóval így már kezdem érteni.
MOVF TMR1H val beteszed az akkuba a számláló által nyert címet.
BANKSEL EEADR itt kiválasztod az EEPROM címregiszterét.
MOVWF EEADR és ezzel meghatározod a címet. De ha csak a felső 8bittel címzel akkor az alsót miért teszed a MULC nevű memóriahelyre? Ezekben az EQU-val történő elnevezésekben a decimális számok mit akarnak jelenteni? BASE 'H70' gondolom az a cím ahonnan elkezdi kiosztani a neveket amiket adsz. A decimális számok az ettől való távolságot jelentik? A TMR1 szinte bármilyen címet meghatározhat. És ha olyat határoz meg ahol nincs semmi?
sorszám: 2103 (104662)
(előzmény: Keri, 2008-11-25 13:06:58)

 
 
Keri
válasz erre | email2008-11-25 13:26:31
Mellesleg amit írtál hogy átszámolni valós fordulatszám értékre elég macerás mivel úgy kell kezdeni hogy 1/x ami az egész 8bites számokkal dolgozó PIC esetében elég problémás, ezért nem is erölködtem a problémán.
De alapvetően az osztás sem egyszerű 8bites alapon.

Ha ilyet kell csinálni én mindig úgy intézem a dolgot hogy csak a kettő hatványaival kelljen osztani, szorozni mert azt egyszerűen meg lehet valósítani a bitforgatás paranccsal.

Persze vannak már nagyon jó szubrutinok ezekre a feladatokra, de ha tehetem mellőzöm őket.
sorszám: 2102 (104661)
(előzmény: Keri, 2008-11-25 13:06:58)

 
 
Keri
válasz erre | email2008-11-25 13:06:58
Az MZ fórumról jöttünk át ide a témával szóval ha valakit érdekel az előzmény ott keresse.

Szóval fordulatszám mérése PIC-el:
Igen, úgy csálom ahogy mondod. Egy számlálót indítok el a jeladóval, le nem állítom csak nullázom a következő jelre, mivel minden fordulatnál szükég van erre az adatra.

Így a számlálót nem befolyásolja a program futása mégis pontos fordulati idő értéket kapok.

Átszámításra nincs szükség, mivel nem kijelezni akarom a fordulatszámot.
A periódus idő, pontosan meghatározza a forgás sebességét, tehát ezzel az adattal számolok tovább.

Sőt 8bites számláló bőven elég (én 16bitesnek használtam a felső 8 bitjét), ez 256 értéket vehet fel.
Az időzítővel mért idő értékkel indirekt címzéssel kiolvasom a memória meghatározott részét, amiben a gyújtás térkép van. Ezzel az értékkel elindítok egy másik időzítőt, vagy ha spórolni kell, akkor a fordulati idő mérőre beállítok egy komparátort és ha eléri a memóriából kivett értéket a számláló akkor adja a vezérlést a gyújtásnak.

Már nem emlékszem pontosan hogy valósítottam meg a programot, de alapvetően így működött.

Lényegében ugyan az a működése mint amit átküldtél nekem.

Ha van elég memória akkor lehet 16bites címzést is használni, nyilván így pontosabb lesz az egész, de mivel gyakorlatban nem próbáltam ezért nem tudom mekkora pontosság szükséges.
sorszám: 2101 (104658)
(előzmény: Prince86, 2008-11-21 12:51:34)

 
 
tams9
válasz erre | email2008-11-23 21:33:45
Hello!
Na azt szeretném kérdezni, hogyha 300-as hengerem van(Bambi által) akkor mekkora lehet a préstér?
Csakmert hengertalptömítést műszaki rajzlapból vágtam ki, nem vastag papír. A hengerfej alatt sörös dobozból kivágott alátét van(0,2-3mm). Ha bedugok forrasztóónt a gyertya nyíláson akkor azt tapasztalom, hogy a kipufogónál még hozzáért de a szívó oldalon nem. Azt szeretném megkérdezni, hogy mi van, ha kiszedem a hengerfej tömítést? Mekkora minimális préstér jó még, ha nem akarom, hogy kopogjon! (egyébként miről ismerni meg a kopogást? tudom, hogy más a hangja, de mire kell olyankor számítani és mit lehet tenni?)
Lehet ettől(mármint a nagy préstértől), hogy 5000km- alatt a nem lett semmi gondom az utángyártott szimpla blokktartóval?

Illetve kicsit másfelé kanyarodva; amikor raktuk bele a dugattyút akkor azt láttuk, hogy a hajtókar alján a sonkánál nem volt olyan bronzgyűrű, a hatókar felső részénél meg újra volt perselyezve ezenkívül derékszögelésnél állandóan túldeformálódott. Namost ezek csak az előző szerelők kreténségéből ilyen, vagypedig direkt, szóval kell félnem, hogy gondja lesz? Vagy hajtsam így amíg megy?

Húha kicsit sok kérdésem van, de remélem nem gond!
Üdv Tamás

ui:251-esről van szó, 250-es hengerrel
sorszám: 2100 (104556)

 
 
sunbim
válasz erre | email2008-11-23 17:48:33
16db ezres volt az akciós ára.
sorszám: 2099 (104550)
(előzmény: Keri, 2008-11-23 00:51:43)

 
 
Keri
válasz erre | email2008-11-23 00:51:43
Mennyiért megy most az IGC60?

sorszám: 2098 (104528)
(előzmény: sunbim, 2008-11-22 22:34:14)

 
 
sunbim
válasz erre | email2008-11-22 22:34:14
Ok értem! Valószinüleg nem vettem észre az irás "eredetijét,,. De most láttam 1 jó kis elektronikus gyújtás irásod. De azt hiszem azt nem piszkálom, bevált a gyári áramkör ;) . Egyenlőre én is még csak próbálkozok a pic beüzemelésével. Üdv.: Kiri

sorszám: 2097 (104526)
(előzmény: Keri, 2008-11-22 19:03:14)

 
 
Keri
válasz erre | email2008-11-22 19:03:14
:)) Mielőtt azt hiszitek valaki plagizált, lapozz vissza. Gyakorlatilag a Szocimotoros legelső cikke volt amit HyGy-vel írtam. Pool és Szrnka György 3 évvel később írta. De ő sem tőlem vette. Egymástól függetlenül találtuk ki a dolgot (végülis magától értetődő megoldás). Csak később konzultáltunk egymással. Persze ő ügyesebb volt, mert ő meg is csinálta, engem annyira nem érdekelt a dolog.
sorszám: 2096 (104513)
(előzmény: sunbim, 2008-11-22 18:55:01)

 
 
sunbim
válasz erre | email2008-11-22 18:55:01
Én ugyanezt a cikket "Pool,, tollából olvastam, de a szakmai háttér és a ,,kütyü" fejlesztése és gyártása az Szrnka Györgyhöz fűződik. Voltam Györgynél, vettem is tőle 1db IGC60 vezérlőt az ETZ-mbe. Ha kell György telefonszáma irj a sunbim@freemail.hu-ra. üdv.: Kiri
sorszám: 2095 (104509)
(előzmény: Prince86, 2008-11-21 12:51:34)

 
 
Prince86
válasz erre | email2008-11-21 12:51:34
Sziasztok!
Tudja valaki hogyan lehet felvenni a kapcsolatot Kéri Lászlóval? A tunning fejlesztés című rovatban publikált egy pic-es előgyújtás szabályzót és azzal kapcsolatban szeretnék tőle kérdezni.
sorszám: 2094 (104421)

 
 
Jaky16
válasz erre | email2008-11-19 18:25:47
Egyenlőre illegálisan lesz hajtva a gép, tehát 10 percnél tovább nem igen lesz használva, és az is csak nappal.de ha tényleg nem fog működni a dolog akkor majd próbálkozom ledekkel.A tükrös 30 éves gumikkal a hidegben amúgy sem biztonságos közlekedni.
sorszám: 2093 (104342)
(elözmény: Árpád, 2008-11-18 18:09:16)

 
  Összesen: 49 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.
:: Fórumok ::
Jawa (27041)
Izs (610)
Motoros túra (17660)
MZ (48890)
police (1763)
Simson (3404)
Pannónia (6541)
Motorszervíz (2866)
Dnepr (125)
Ural (61)
Átépítés (910)
Csepel (1960)
Junak (318)

:: Keresés ::




www.motoros.hu