krmiljenje luČi semaforja led diodic avtor jernej andreja sodelavca robert kern robert bezjak nazaj tabela delovanja vhodni tevec urca cas ugotavljanje stanj reset in utripanje luči inicializacija in main program tabela delovanja moj del naloge je bil sprogramirati delovanje luči na semaforju sam semaforni cikel kakor tudi momosti krmiljenja iz centrale sem si zamislil sam oziroma je stvar narejena po dogovoru s sodelavcama delovanje semaforja podaja spodnja tabela cas rds rus zes rdp zep rds rus zes rdp zep menu vhodni tevec urca cas rutina semaf ki krmili semaforne lučke je postavljena v urnik opravil enkrat kar pomeni da je klicana krat v sekundi in ima s tem definirano svojo časovno os urca je spremenlivka z začetno vrednostjo kateri pa se pri vsakem klicanju rutine vrednost zmanja za dokler ni izpolnjen pogoj urca rutina ne nadaljuje z delom ko pa je se v urca vpie s tem sem dosegel da se rutina poene na ugotavljanje stanj natančno vsake s spremenlivka cas pa dejansko teje kolikokrat je bila urca na osnovi te spremenljivke pa rutina odloča o stanju luči kot je vidno v naslednji točki semaf ldaa urca vzame vrednost ki je zacet v urca deca odsteva pri vsakem klicanju staa urca bne izhod program se nadaljuja vsako klicanje ldaa urca gre spet na staa urca menu ugotavljanje stanj spremenljivka cas je torej časovna os rutine in na njeni vrednosti rutina ugotavlja katere izhodne črke mora postaviti na naslova dpra in dprb posamezni biti izhodnih črk pa definirajo stanja luči na semaforju kot je razvidno iz zgornje tabele ldaa cas suba ko je rutina skece v stanje bmi st ce cas ne ustreza gre do nasl primerjava ldaa cas suba ugotavljanje nasl stanja rus gori s bmi st ldaa cas suba ugotavlanje prvi zel cikel bmi st st jmp stan ker je program daljsi od naslovov stan ldaa staa dprb v dprb normalno vpisujem ldaa dpra v dpra pa zaradi drugih uporabnikov anda porta to naredimo preko or in ali oraa operacije staa dpra jmp preizh program je tako sestavljen iz dveh delov iz odločitvenega dela ko se odloča o pravem stanju in iz dela kjer so stanja opisana menu reset in utripanje rumenih luČi kriz je spremenljivka ki jo postavlja centrala po serijski komunikaciji rutina pa jo samo bere nosi informacijo o utripanju rumenih luči na semaforju dodana pa je opcija rdečih luči kriiče je zaprto dokler spodnji bit ni enak set delovanja rutina prehaja v utripanje samo pri stanju rdečih luči stan zaradi varnosti v stanju utripaj pa sta dva stanja ugasni in nagi ki se med seboj pri vsakem klicanju rutine če seveda le ta mora v utripanje izmenjujeta Če rutina mora v utripanje pa to gleda na začetku pri spremenljivki u ki si jo definira sama piskaču daje rutina iformacijo o trenutnem stanju v spremenljivko znak menu inicializacija in main program pia je inicializirana v init glavni program pa je zaradi take zasnove zelo kratki procesor je bil pri preizkuanju luči in piskača na semaforju bil zaseden le z dvema opraviloma v urniku shedule skupno pa je zmeraj opravil manj kot strojnih ciklov main program main aplication user code jmp main rts menu