// Programowanie mikrokontrolerow 2015/2016, Wydzial Fizyki UW // Program sterujacy rzutnikiem w sali cwiczeniowej. // // Autorzy: Pawel Klimczewski, Bartlomiej Zglinicki // Wymagane polaczenia w ukladzie ZL15AVR: // // PA0 - dioda IRED // PA1 - SW0 (przycisk sterujacy) #include #include //--------------------------------------------------------------------------- void configure_pins() { // Port PA0 steruje dioda LED. DDRA |= 1 << PA0; } //--------------------------------------------------------------------------- // Funkcja generuje n/2 impulsow void f( uint16_t n ) { for ( ; n; --n ) { PORTA ^= 1 << PA0; _delay_loop_1( 68 ); } } //--------------------------------------------------------------------------- int main() { configure_pins(); while ( true ) { // Sprawdzamy nacisniecie przycisku PA1. if ( PINA & 1 << PA1 ) continue; // Generujemy polecenie wylaczenia rzutnika. f( 9*38*2); _delay_ms(4.5); uint32_t x = 0b00000000000011000111001010001101; for ( uint8_t n = 32; n; --n ) { f(2*21); if (x & 1ul<<31) { _delay_ms(1.69); } else { _delay_ms(0.56); } x <<= 1; } f(2*21); break; } return 0; } //---------------------------------------------------------------------------