document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. #include <avr/io.h>
  2. #include <util/delay.h>
  3.  
  4. #define _DOTTIME 100
  5. #define LED PB2
  6.  
  7. void morseSOS(void);
  8. void morseDot(void);
  9. void morseDash(void);
  10. void morseSpace(void);
  11. void morseNewWord(void);
  12. void blink(void);
  13.  
  14. int main (void)
  15. {
  16.     DDRB |= (1<<LED);
  17.     PORTA |= (1<<PA7);
  18.     //DDRB = 0x00; Still can see a dimm light even if not set as an output
  19.  
  20.     while(1){
  21.         if (!(PINA & (1<<PA7))){
  22.             morseSOS();
  23.             morseNewWord();
  24.         }
  25.     }
  26. }
  27.  
  28. void morseSOS(void){
  29.         morseDot();
  30.         morseDot();
  31.         morseDot();
  32.         morseSpace();
  33.         morseDash();
  34.         morseDash();
  35.         morseDash();
  36.         morseSpace();
  37.         morseDot();
  38.         morseDot();
  39.         morseDot();
  40. }
  41.  
  42. void morseDot(void){
  43.     PORTB |= (1<<LED);
  44.     _delay_ms(_DOTTIME);
  45.     PORTB &= ~(1<<LED);
  46.     _delay_ms(_DOTTIME);
  47. }
  48.  
  49. void morseDash(void){
  50.     PORTB |= (1<<LED);
  51.     _delay_ms(3*_DOTTIME);
  52.     PORTB &= ~(1<<LED);
  53.     _delay_ms(_DOTTIME);
  54. }
  55.  
  56. void morseSpace(void){
  57.     _delay_ms(2*_DOTTIME);
  58. }
  59.  
  60. void morseNewWord(void){
  61.     _delay_ms(6*_DOTTIME);
  62. }
  63.  
  64. void blink(void){
  65.     PORTB |= (1<<LED);
  66.     _delay_ms(500);
  67.     PORTB &= ~(1<<LED);
  68.     _delay_ms(500);
  69. }
');