#include <Arduino.h>
#include <util/delay.h>
#include <avr/io.h>
int main(void)
{
DDRB = B1; //set pin 8 as output
DDRC = B0; //set pin A0 as input
PINC = B00; //clear memory, set pin A0 = low
PORTB = B000000; //clear memory, turn off all pins 8 to 13
while(1)
{
if(PINC == B1)
{
//begin the START prosign dah dih dah dih dah
//dah
PORTB = B1; //turn on LED
_delay_ms(1000); //delay 1s
PORTB = B0;
_delay_ms(333); //delay 0.333s - dark region
//dih
PORTB = B1; //turn on LED
_delay_ms(333); //delay 0.333s
PORTB = B0; //turn off LED
_delay_ms(333); //delay 0.333s - dark region
//dah
PORTB = B1; //turn on LED
_delay_ms(1000); //delay 1s
PORTB = B0;
_delay_ms(333); //delay 0.333s - dark region
//dih
PORTB = B1; //turn on LED
_delay_ms(333); //delay 0.333s
PORTB = B0; //turn off LED
_delay_ms(333); //delay 0.333s
//dah
PORTB = B1; //turn on LED
_delay_ms(1000); //delay 1s
PORTB = B0;
_delay_ms(1000); //delay 1s - short gap - transfer from START to S
//start SOS signal
//start letter S
//dih
PORTB = B1; //turn on LED
_delay_ms(333); //delay 0.333s
PORTB = B0; //turn off LED
_delay_ms(333); //delay 0.333s - dark region
//dih
PORTB = B1; //turn on LED
_delay_ms(333); //delay 0.333s
PORTB = B0; //turn off LED
_delay_ms(333); //delay 0.333s - dark region
//dih
PORTB = B1; //turn on LED
_delay_ms(333); //delay 0.333s
PORTB = B0; //turn off LED
_delay_ms(1000); //delay 1s - dark region - change to letter O
//start letter O
//dah
PORTB = B1; //turn on LED
_delay_ms(1000); //delay 1s
PORTB = B0;
_delay_ms(333); //delay 0.333s - dark region
//dah
PORTB = B1; //turn on LED
_delay_ms(1000); //delay 1s
PORTB = B0;
_delay_ms(333); //delay 0.333s - dark region
//dah
PORTB = B1; //turn on LED
_delay_ms(1000); //delay 1s
PORTB = B0;
_delay_ms(1000); //delay 0.333s - dark region - change to letter S
//start letter S
//dih
PORTB = B1; //turn on LED
_delay_ms(333); //delay 0.333s
PORTB = B0; //turn off LED
_delay_ms(333); //delay 0.333s - dark region
//dih
PORTB = B1; //turn on LED
_delay_ms(333); //delay 0.333s
PORTB = B0; //turn off LED
_delay_ms(333); //delay 0.333s - dark region
//dih
PORTB = B1; //turn on LED
_delay_ms(333); //delay 0.333s
PORTB = B0; //turn off LED
_delay_ms(1000); //delay 1s - dark region - transistion to STOP prosign
//begin the STOP prosign dih dah dih dah dih
//dih
PORTB = B1; //turn on LED
_delay_ms(333); //delay 0.333s
PORTB = B0; //turn off LED
_delay_ms(333); //delay 0.333s - dark region
//dah
PORTB = B1; //turn on LED
_delay_ms(1000); //delay 1s
PORTB = B0;
_delay_ms(333); //delay 0.333s - dark region
//dih
PORTB = B1; //turn on LED
_delay_ms(333); //delay 0.333s
PORTB = B0; //turn off LED
_delay_ms(333); //delay 0.333s - dark region
//dah
PORTB = B1; //turn on LED
_delay_ms(1000); //delay 1s
PORTB = B0;
_delay_ms(333); //delay 0.333s - dark region
//dih
PORTB = B1; //turn on LED
_delay_ms(333); //delay 0.333s
PORTB = B0; //turn off LED
_delay_ms(1000);
//end of program
PINC = B00;
}
}
}