Advertisement
Guest User

Untitled

a guest
Oct 18th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.45 KB | None | 0 0
  1. #include <avr/io.h>
  2.  
  3. #define F_CPU 16000000
  4. #include <util/delay.h>
  5.  
  6. void my_delay_ms(int n) {
  7. while(n--) {
  8. _delay_ms(1);
  9. }
  10. }
  11.  
  12.  
  13. void my_delay_us(int n) {
  14. while(n--) {
  15. _delay_us(1);
  16. }
  17. }
  18.  
  19. int main()
  20. {
  21. //Lysdæmper!
  22. unsigned int i = 0b01000000;
  23. //int h = delayCount;
  24. PINA = 0x00; //port A as input
  25. DDRB = 0xFF; //port B as output
  26. DDRH = i;
  27. unsigned char toggle = 0;
  28. int delayCount = 0;
  29. //DDRC = 0xFF; //port C as output
  30. //PORTA = 0xAA;
  31. //PORTB=0xFF;
  32. while (1)
  33. {
  34. //PORTB=11111111;
  35. if(~PINA & (1<<0) || toggle == 1)
  36. {
  37. toggle = 1;
  38. PORTH=i;
  39. my_delay_ms(800-delayCount*4);
  40. PORTH=0x00;
  41. my_delay_ms(200-delayCount);
  42. }
  43. if(~PINA & (1<<1) || toggle == 2)
  44. {
  45. toggle = 2;
  46. PORTH=i;
  47. my_delay_ms(200-delayCount);
  48. PORTH=0x00;
  49. my_delay_ms(800-delayCount*4);
  50. }
  51. if(~PINA & (1<<2) || toggle == 3)
  52. {
  53. toggle = 3;
  54. PORTH=i;
  55. my_delay_us(800-delayCount*4);
  56. PORTH=0x00;
  57. my_delay_us(200-delayCount);
  58. }
  59. if(~PINA & (1<<3) || toggle == 4)
  60. {
  61. toggle = 4;
  62. PORTH=i;
  63. my_delay_us(200-delayCount);
  64. PORTH=0x00;
  65. my_delay_us(800-delayCount*4);
  66. }
  67.  
  68. if(~PINA & (1<<4))
  69. {
  70. toggle = 5;
  71. }
  72. //Control structure to determine delay.
  73. if(~PINA & (1<<6) )
  74. {
  75. delayCount++;
  76. PORTB = delayCount;
  77. _delay_ms(50);
  78. }
  79. if(~PINA & (1<<7))
  80. {
  81. delayCount--;
  82. PORTB = delayCount;
  83. _delay_ms(50);
  84. }
  85.  
  86.  
  87. }
  88. return 0;
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement