ATMEL 89C2051 změna časování pro kolejiště
Moderátor: Moderátoři
ATMEL 89C2051 změna časování pro kolejiště
Prosím Vás kolegové o pomoc.Hned ze začátku říkám,že programování procesorů nerozumím.Elektronice se jinak věnuji 20 let...ale mimo procesory..ale to je jiná věc....nyní k mému problému.
Soused mi včera donesl domu na opravu amatérsky zbastlený časovač pro kolejiště (cca 15let starý) na desce je osazen mikroprocesor 89C2051,krystal,stabilzátor a vstupní/výstupní obvody.
Zkrátím to,deska plní jen časové funkce např. na kolejišti je optozávora mezi kterou projede vláček,pošle puls do ATMELU,procesor odpočítá nějaký interval a následně sepne výstup atd....to ani není důležité, spíš mi jde o jinou věc.
Soused nyní požaduje upravit délku sepnutí výstupů pro semafory cca z 5 sekund na 10 sekund na jednom určitém pinu z procesoru.Jenže....co s tím.Procesor programoval človíček,který již není mezi námi a jediné co mám k dispozici je HEX soubor procesoru.
Proto se vás chci zeptat,mohu s HEX souborem nějak nakládat a převést tento soubor "někam" kde by šel program upravit a pak ho znovu do atmelu nahrát zpět?Programátor mám.děkuji vše za info
- ZdenekHQ
- Významný člen
- Příspěvky: 25519
- Registrován: 21 črc 2006, 00:00
- Bydliště: skoro Brno
- Kontaktovat uživatele:
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?]
1) Je možné zjistit funkce vstupních / výstupních okolních obvodů a potom podle toho naprogramovat nového brouka.
2) Pokud jde jen o prodloužení jednoho plně funkčního výstupu, který dělá 5s a má dělat 10s, lze vložit mezi vlastní PIN brouka a následné obvody jiný "malý" zpožďovač (555, 4093, 40106 apod.). Nebo tento zpožďovač napojit až na úplný výstup z desky, abys nepracoval přímo s vlastním broukem.
3) Vyrobit kopii zařízení s jiným broukem, který se třeba sám naučíš programovat, až zase příště s něčím přijde.
EDIT: Jsem za Plhu, Zdenda vyhrál...
a Termit taky ...
OMA50 píše:...převést HEX do nějakého souboru co tento program zvládne,upravit soft,převést ho zpět do HEX na šup do atmelu...je špatná představa?
No, pokud nezvladas asm jak kdyz bicem mrska, tak na tohle zapomen. Z hex do asm to prevest jde, ale vysledek je opravdu dost neprehledny. Proto jsem psal, ze je rychlejsi to napsat cele znovu, pokud je funkce jen nejake casovani apod.
- monterjirka
- Příspěvky: 2855
- Registrován: 14 čer 2003, 00:00
- Bydliště: Blížejov
- ZdenekHQ
- Významný člen
- Příspěvky: 25519
- Registrován: 21 črc 2006, 00:00
- Bydliště: skoro Brno
- Kontaktovat uživatele:
OMA50 píše:...převést HEX do nějakého souboru co tento program zvládne,upravit soft,převést ho zpět do HEX na šup do atmelu...je špatná představa?
Je to velmi naivní představa. Nedostaneš původní zdroják, ale jen hromadu instrukcí a noname čísel/adres. Jednou jsem to musel dělat, předělával jsem jakejsi panel pro volejbalisty na jiný časy, a byl to docela záhul.
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?]
MOV TH1,#(HIGH(15555)) ;TMOD.7(C/T\)=0 CASOVAC
MOV TL1,#(LOW(15555)) ;TMOD.6,TMOD.5 (M1=0,M0=1) 16-TI BIT
MOV TMOD,#00010101B
MOV COUNT,#20 ;20 * 50MS(INT T1) = 1 SEK
No a metodou pokus omyl jsem našel hodnoty na podstatně přesnější chod hodin.
Třeba by v tvým případě stačilo hodnotu pro COUNT zvýšit na dvojnásobek. Tedy pokud je časování dělaný od přerušení a né nějakejma smyčkama v programu. Hex přímo editovat nemůžeš, jsou tam kontrolní součty.
Proč mi nemůže všechno chodit hned ?!!
- pocitujlasku
- Příspěvky: 2764
- Registrován: 12 pro 2005, 00:00
- Bydliště: SR, Poprad
Celeron píše:Někdy to zase není tak strašný. Před časem jsem pro kámoše vyráběl časovej stmívač pro ptactvo z koupený stavebnice. Byl k tomu k dispozici taky jen hex. Hodiny se v tom dost předcházely, komunikace s autorem trochu vázla a tak jsem do Xeltec programátoru natáhl hex a editorem jsem ručně našel sekvenci instrukcí: (za středníkama je rozbor co tím chtěl autor říci)
MOV TH1,#(HIGH(15555)) ;TMOD.7(C/T\)=0 CASOVAC
MOV TL1,#(LOW(15555)) ;TMOD.6,TMOD.5 (M1=0,M0=1) 16-TI BIT
MOV TMOD,#00010101B
MOV COUNT,#20 ;20 * 50MS(INT T1) = 1 SEK
No a metodou pokus omyl jsem našel hodnoty na podstatně přesnější chod hodin.
Třeba by v tvým případě stačilo hodnotu pro COUNT zvýšit na dvojnásobek. Tedy pokud je časování dělaný od přerušení a né nějakejma smyčkama v programu. Hex přímo editovat nemůžeš, jsou tam kontrolní součty.
Přesně něco podobnýho jsem myslel...jenže jak ten soubor BIN. převedu na "něco" kde to takhle uvidím rozepsané...jde to vůbec?
Jak moc pouzitelny bude vysledek ale netusim.