Descrierea codului din aplicatie
Pentru switch-uri am activat toti pinii de pe PORTC pe input.
Am activat rezistentele interne de pull-up si am dat enable la intreruperi pe pinii respectivi
Am setat o rutine de intreruperi pentru pinii respectivi si de fiecare data cand este o modificare pe unul dintre ei, valorile lor sunt citite din registrii si sunt pusi intr-un vector care retine starile pinilor. Acestia dupa sunt pusi intr-o coada sortata care ne da traseul/ordinea in care switch-urile trebuiesc oprite.
Algoritmul de sortare a vectorului este unul pentru rezolvarea TSP (problema comis-voiajorului) modificat pentru aplicatia curenta. Acesta sorteaza switch-urile care trebuie apasate in ordinea care minimizeaza drumul pe care trebuie sa il traverseze robotul.
Folosesc un timer pentru a determina comportamentul robotului in starea de idle.
Motoarele sunt controlate prin PWM.
Librarii aditionale foloite: