Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <avr/io.h>
- #define F_CPU 16000000
- #include <util/delay.h>
- void my_delay_ms(int n) {
- while(n--) {
- _delay_ms(1);
- }
- }
- void my_delay_us(int n) {
- while(n--) {
- _delay_us(1);
- }
- }
- int main()
- {
- //Lysdæmper!
- unsigned int i = 0b01000000;
- //int h = delayCount;
- PINA = 0x00; //port A as input
- DDRB = 0xFF; //port B as output
- DDRH = i;
- unsigned char toggle = 0;
- int delayCount = 0;
- //DDRC = 0xFF; //port C as output
- //PORTA = 0xAA;
- //PORTB=0xFF;
- while (1)
- {
- //PORTB=11111111;
- if(~PINA & (1<<0) || toggle == 1)
- {
- toggle = 1;
- PORTH=i;
- my_delay_ms(800-delayCount*4);
- PORTH=0x00;
- my_delay_ms(200-delayCount);
- }
- if(~PINA & (1<<1) || toggle == 2)
- {
- toggle = 2;
- PORTH=i;
- my_delay_ms(200-delayCount);
- PORTH=0x00;
- my_delay_ms(800-delayCount*4);
- }
- if(~PINA & (1<<2) || toggle == 3)
- {
- toggle = 3;
- PORTH=i;
- my_delay_us(800-delayCount*4);
- PORTH=0x00;
- my_delay_us(200-delayCount);
- }
- if(~PINA & (1<<3) || toggle == 4)
- {
- toggle = 4;
- PORTH=i;
- my_delay_us(200-delayCount);
- PORTH=0x00;
- my_delay_us(800-delayCount*4);
- }
- if(~PINA & (1<<4))
- {
- toggle = 5;
- }
- //Control structure to determine delay.
- if(~PINA & (1<<6) )
- {
- delayCount++;
- PORTB = delayCount;
- _delay_ms(50);
- }
- if(~PINA & (1<<7))
- {
- delayCount--;
- PORTB = delayCount;
- _delay_ms(50);
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement