Grupa nr 4 |
29.03.2011 |
Paulina Chmielewska Mateusz Gąsiorek |
Prowadzący: Antoni Izwroski |
Sprawozdanie z laboratorium Podstaw Techniki Mikroprocesorowej
Ćwiczenie nr 3 - Silnik skokowy
1. Opis słowny zadania
Naszym zadaniem było zaprojektowanie programu, który będzie współpracował z ATMEGĄ32 (w naszym przypadku 32). Jego zadaniem było naśladowanie na diodach, działania silnika skokowego. Za pomocą kodu szestnastkowego oraz binarnego mieliśmy zaprojektować silnik skokowy. Na pierwszych 4 z 8 diód - diodach „nowych” wyświetlana miała zostać praca silnika skokowego, na pozostałych 4 z 8 diód - diodach „starych” wyświetlany miał być bez zmian numer grupy (w naszym wypadku 4).
2. Schemat połączeń
3. Program
Wersja I
#define F_CPU 1000000UL // 1 MHz #include <util/delay.h> #include <avr/io.h>
const int ms=1000; void delay_ms( int ms) { volatile long unsigned int i; for(i=0;i<ms;i++) _delay_ms(1); }
const int skoki[] = {1,3,2,6,4,12,8,9};
int main(void) {
//ustalenie kierunku pracy pinow DDRD=0xFF; PORTD = ~32; delay_ms(2000); while(1){
for(int i = 0; i<=7; i++){ PORTD = skoki[i]; PORTD = PORTD | (32); PORTD = ~PORTD; delay_ms(ms); } };
return(0); }
|
Wersja II
#define F_CPU 1000000UL // 1 MHz #include <util/delay.h> #include <avr/io.h>
int main(void) { char tab[]={1,3,2,6,4,12,8,9}; DDRD=0xFF; PORTD=32; //tutaj numer grupy char temp=PORTD; while(1) { for(int i=0; i<=7; i++) { PORTD=temp; PORTD=temp | tab[i]; PORTD=~PORTD; _delay_ms(10000); } } return(0); } |
4. Opis testowania
Na wstepie numer naszej grupy 4 zobrazowaliśmy jako ciąg znaków w kodzie binarnym. Zapalona dioda nr 4 świadczy o 1 na 4 miejscu, przeliczając kod binarny otrzymujemy wartośc 32. Teraz gdy posiadamy wartość diód „starych”, możemy przejść do testowania. Program nasz zawiera kombinacje pierwszy 4 diód zapisanych w postaci tablicy jest to wyświetlanie po kolei elementów: 1, 1-2, 2, 2-3, 3, 3-4, 4, 4-1.
Nasza pętla w kodzie „przeskakuje” przez poszczególne elementy, pozostawiając diody „stare” bez zmian.