6 ProgrammeringenFör att kontrolleras rörelsen från c196:an måste ett program färdigställas, compileras och brännas in i det EPROM som satts på kretskortet. Till vår hjälp hade vi i Röda Rummet programmen QEDIT, IAR a8096, IAR icc8096, IAR xlinkIRAs 196 WorkBench samt en EPROM brännare. 6.1 KravSkall krav: Spindeln skall kunna aktivera benen på ett sådant sätt att den rör sig framåt ett steg. Detta skall kunna upprepas cykliskt. Börkrav: Spindeln bör via information från IR-dioden och vridpotentiometern känna av sin riktning i förhållande till sändaren och kunna anpassa sin gång efter detta. 6.1.1.1 Programmerings tekniska krav:* Programmet bör, för att lättare få plats i EPROM:et vara så litet som möjligt i kompilerat format. Det kommer därför att göras helt i Assambler och eventuella makron kommer att ersättas av subrutiner. * Programmet bör kunna exikveras så enkelt och tidseffektivt som möjligt. Onödig hopp och återhopp i programmet kommer därför att i möjligaste mån att undvikas. * Koden skall vara lättförståerlig och lätt att modifiera. Programmet kommer därför att skrivas i standard-assambler, utan specialkommandon eller includerade filer. Allting kommer att ligga i en fil. 6.1.1.2 Börkrav:* Eftersom spindeln skall användas i två olika situationer: att följa en signal och att så snabbt som möjligt ta sig rakt fram utan att säka av området efter signalen, skall om plats finns två olika program läggas upp efter varandra i samma EPROM, som vilket vart och ett är optimerat för att utföra sin uppgift så tidseffektivt som möjligt. Program väljs sedan utifrån med swichar genom att ett eller nollställa en bit på en inport.
6.1.3 StyrningI programmet för styrning efter sändaren, kommer det även att ingå en avscanning efter sändarsignalen. När scannern känner av signalen, kommer insignalen från vridpotentiometern att AD-omvandlas för att ge en vinkel för sändarens position, relativt spindeln. Denna vinkel kommer sedan, om avvikelsen från framåtriktningen är för stor, att användas för att på något sätt vrida spindeln till rätt position efter färdigtaget steg. Detta ser i kod ut ungefär som:
Anledningen till att AD-omvandling sker för varje varv i slingan, oberoende av om någon signal uppfattas från IR-dioden eller ej beror på att den tar förhållandevis så pass stor tid att genomföra den kommer att påverka antalet varv slingan måste gå. Genom att alltid AD-omvandla behöver inte programmeraren bekymra sig om vid hur många tillfällen AD-omvandling annars skulle ske. Dessutom ökar den slingans längd så pass mycket att endast en counter behövs, istället för två som går i varandra. OBS1: att högerkorrigering endast kan ske efter vart annat steg och vänsterkorrigering efter vartannat. |
All right reserved Copyright © 1998-1999 Johan Dahlin.