Code:
/* +---------------------------------+
| |
| Morse-Code-Generator |
| von René Becker |
| |
+---------------------------------+
*/
//---------------------------------------------------------
/* +-----------------+
| | | |
| | Includes | |
| | & | |
| | Defines | |
| V V |
+-----------------+
*/
//---------------------------------------------------------
#include <avr/io.h>
//---------------------------------------------------------
#define sekunden 0.2
#define a blinken(1,1); blinken(1,3);
#define b blinken(1,3); blinken(3,1);
#define c blinken(1,3); blinken(1,1); blinken(1,3); blinken(1,1);
#define d blinken(1,3); blinken(2,1);
#define e blinken(1,1);
#define f blinken(2,1); blinken(1,3); blinken(1,1);
#define g blinken(2,3); blinken(1,1);
#define h blinken(4,1);
#define i blinken(2,1);
#define j blinken(1,1); blinken(3,3);
#define k blinken(1,3); blinken(1,1); blinken(1,3);
#define l blinken(1,1); blinken(1,3); blinken(2,1);
#define m blinken(2,3);
#define n blinken(1,3); blinken(1,1);
#define o blinken(3,3);
#define p blinken(1,1); blinken(2,3); blinken(1,1);
#define q blinken(2,3); blinken(1,1); blinken(1,3);
#define r blinken(1,1); blinken(1,3); blinken(1,1);
#define s blinken(3,1);
#define t blinken(1,3);
#define u blinken(2,1); blinken(1,3);
#define v blinken(3,1); blinken(1,3);
#define w blinken(1,1); blinken(2,3);
#define x blinken(1,3); blinken(2,1); blinken(1,3);
#define y blinken(1,3); blinken(1,1); blinken(2,3);
#define z blinken(2,3); blinken(2,1);
#define wortende mysleep(7*einheit);
#define punkt blinken(1,1); blinken(1,3); blinken(1,1); blinken(1,3); blinken(1,1); blinken(1,3);
//---------------------------------------------------------
/* +--------------------------+
| | | |
| | Unterprogramme | |
| V V |
+--------------------------+
*/
//---Einheit-----------------------------------------------
long einheit = sekunden/0.00000438;
//---------------------------------------------------------
//---mysleep-----------------------------------------------
int mysleep (long sleepdauer)
{
long zaehler;
for (zaehler=0 ; zaehler<=sleepdauer ; zaehler++ )
{
asm volatile ( "nop":: ) ;
}
}
//---------------------------------------------------------
//----Blinken----------------------------------------------
int blinken(int anzahl,int multipl)
{
int xx;
for (xx=0;xx<anzahl;xx++)
{
PORTD = 0b01000000;
mysleep (multipl*einheit);
PORTD = 0b00000000;
mysleep (multipl*einheit);
}
mysleep(3*einheit);
}
//---------------------------------------------------------
/* +-------------------------+
| | | |
| | Hauptprogramm | |
| V V |
+-------------------------+
*/
//---Main--------------------------------------------------
int main ()
{
DDRD = 0b01000000;
while(1)
{
t;e;s;t;wortende;
}
}
//---------------------------------------------------------
Hoffe es kann jemand helfen!
Lesezeichen