- SF800 Solar Speicher Tutorial         
Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 24 von 24

Thema: Morsegenerator

  1. #21
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo Thraxas

    Hat da vielleicht noch jemand eine Idee?
    Bitte immer das Programm zeigen, woher sollen wir den sonst wissen, was das Problem verursacht. Bei kleinen Programmen (so wie deins im Moment) komplett, bei umfangreicheren Programmen ein Ausschnitt, möglichst lauffähig, auf das Problem reduziert.

    Gruß

    mic
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  2. #22
    Neuer Benutzer Öfters hier
    Registriert seit
    23.07.2007
    Beiträge
    13
    Hier der Code:
    Code:
    		
    /*		+---------------------------------+
    		|								  |
    		|		Morse-Code-Generator	  |
    		|		   von René Becker		  |
    		|								  |
    		+---------------------------------+
    */ 
    
    //---------------------------------------------------------
    
    /*		+-----------------+
    		|  |		   	| |
    		|  |  Includes  | |
    		|  |     &      | |
    		|  |  Defines   | |
           	|  V            V |
    		+-----------------+
    */
    
    //---------------------------------------------------------
    #include <avr/io.h>
    #include <asuro.h>
    
    //---------------------------------------------------------
    #define sekunden 0.4
    //---------------------------------------------------------
    #define MORSE_a blinken(1,1,0); blinken(1,3,2);
    #define MORSE_b blinken(1,3,0); blinken(2,1,0); blinken(1,1,2);
    #define MORSE_c blinken(1,3,0); blinken(1,1,0); blinken(1,3,0); blinken(1,1,2);
    #define MORSE_d blinken(1,3,0); blinken(1,1,0); blinken(1,1,2);
    #define MORSE_e blinken(1,1,2);
    #define MORSE_f blinken(2,1,0); blinken(1,3,0); blinken(1,1,2);
    #define MORSE_g blinken(2,3,0); blinken(1,1,2);
    #define MORSE_h blinken(3,1,0); blinken(1,1,2);
    #define MORSE_i blinken(1,1,0); blinken(1,1,2);
    #define MORSE_j blinken(1,1,0); blinken(2,3,0); blinken(1,3,2);
    #define MORSE_k blinken(1,3,0); blinken(1,1,0); blinken(1,3,2);
    #define MORSE_l blinken(1,1,0); blinken(1,3,0); blinken(1,1,0); blinken(1,1,2);
    #define MORSE_m blinken(1,3,0); blinken(1,3,2);
    #define MORSE_n blinken(1,3,0); blinken(1,1,2);
    #define MORSE_o blinken(2,3,0); blinken(1,3,2);
    #define MORSE_p blinken(1,1,0); blinken(2,3,0); blinken(1,1,2);
    #define MORSE_q blinken(2,3,0); blinken(1,1,0); blinken(1,3,2);
    #define MORSE_r blinken(1,1,0); blinken(1,3,0); blinken(1,1,2);
    #define MORSE_s blinken(2,1,0); blinken(1,1,2);
    #define MORSE_t blinken(1,3,2);
    #define MORSE_u blinken(2,1,0); blinken(1,3,2);
    #define MORSE_v blinken(3,1,0); blinken(1,3,2);
    #define MORSE_w blinken(1,1,0); blinken(1,3,0); blinken(1,3,2);
    #define MORSE_x blinken(1,3,0); blinken(2,1,0); blinken(1,3,2);
    #define MORSE_y blinken(1,3,0); blinken(1,1,0); blinken(1,3,0); blinken(1,3,2);
    #define MORSE_z blinken(2,3,0); blinken(1,1,0); blinken(1,1,2);
    #define MORSE_wortende ownsleep(5*einheit);
    #define MORSE_punkt blinken(1,1,0); blinken(1,3,0); blinken(1,1,0); blinken(1,3,0); blinken(1,1,0); blinken(1,3,2);
    //---------------------------------------------------------
    
    /*		+----------------------+
    		|  |			   	|  |
    		|  | Unterprogramme |  |
           	|  V	            V  |
    		+----------------------+
    */
    //---Einheit-----------------------------------------------
    long einheit = sekunden/0.00000438;
    //---------------------------------------------------------
    
    //---Wort/Satz/Buchstabe-----------------------------------
    char einZeichen[] = "#"; 
    char Zeichenkette[] = ""; 
    uint8_t z1, z2 = 0; 
    
    //---------------------------------------------------------
    
    //---mysleep-----------------------------------------------
    int ownsleep (long sleepdauer)                   
    {                                                                                                         
             long zaehler;
             for (zaehler=0 ; zaehler<=sleepdauer ; zaehler++ )   
             {                                               
                  asm volatile ( "nop":: ) ;                 
             } 
    }	
    //---------------------------------------------------------
    
    
    //---Blinken-----------------------------------------------	 
    int blinken(int anzahl,int multipl,int endsleep)
    {
    	int xx;
    	for (xx=0;xx<anzahl;xx++)
    	{
    		PORTD = 0b01000000;
    		ownsleep (multipl*einheit);
    		PORTD = 0b00000000;
    		ownsleep (1*einheit);
    	}
    	ownsleep(endsleep*einheit);
    }
    //---------------------------------------------------------
    
    //----Hyperterminaleingabe---------------------------------
    
    //---------------------------------------------------------
    
    
    
    
    
    
    /*		+----------------------+
    		|  |			   	|  |
    		|  |  Hauptprogramm |  |
           	|  V	            V  |
    		+----------------------+
    */
    
    
    //---Main--------------------------------------------------
    int main ()
    {
    DDRD  = 0b01000100;
    DDRC  = 0b00000011;
    DDRB  = 0b00000000;
    char einZeichen[] = "#";
    char Zeichenkette[] = ""; 
    	while(1)
    			{
    	
    		          z1=0; 
    		      do 
    		      { 
    		         SerRead(einZeichen,1,0);       // warten bis ein Zeichen über IR kommt 
    		         SerWrite(&einZeichen[0],1);    // Kontrollausgabe zum Terminal 
    		         Zeichenkette[z1] = einZeichen[0]; 
    		         z1++; 
    		      }	
    			  	while (einZeichen[0] != 0x09);   // solange Zeichen einlesen bis VT erkannt wird 
    		  	    for (z2 = 0; z2 < z1; z2++) 
    		       { 
    
         		 { 
          		   switch (Zeichenkette[z2])         // der erste Index von einZeichen[] ist 0 
           			  { 
    
    
         
    
    		            case ('a'): MORSE_a
    		            case ('b'): MORSE_b 
    		            case ('c'): MORSE_c 
    		            case ('d'): MORSE_d
    		            case ('e'): MORSE_e 
    		            case ('f'): MORSE_f 
    					case ('g'): MORSE_g 
    		            case ('h'): MORSE_h 
    		            case ('i'): MORSE_i 
    					case ('j'): MORSE_j
    		            case ('k'): MORSE_k
    		            case ('l'): MORSE_l
    					case ('m'): MORSE_m 
    		            case ('n'): MORSE_n 
    		            case ('o'): MORSE_o
    					case ('p'): MORSE_p 
    		            case ('q'): MORSE_q 
    		            case ('r'): MORSE_r
    					case ('s'): MORSE_s 
    		            case ('t'): MORSE_t 
    		            case ('u'): MORSE_u
    					case ('v'): MORSE_v 
    		            case ('w'): MORSE_w 
    		            case ('x'): MORSE_x 
    		            case ('y'): MORSE_y 
    		            case ('z'): MORSE_z 
    		            case (' '): MORSE_wortende
    					case ('.'): MORSE_punkt  
    
    				  }
    				
    			  }
           }
          }
    
    return(0);
    }
    @damaltor: die morsecodes zu den buchstaben stimmen

  3. #23
    Neuer Benutzer Öfters hier
    Registriert seit
    08.07.2005
    Ort
    Irgendwo südlich von Dortmund
    Alter
    45
    Beiträge
    16
    Ich hab mir den Code nochmal angesehen und möchte dir vorschlagen, daß du vielleicht die Sleep Funktion der Asuro Lib verwendest und am Angang des Programmes einfach mal Init() aufrufst.

    Keine Gewähr für diesen Code.

    Code:
    /*    +---------------------------------+
          |                                 |
          |      Morse-Code-Generator       |
          |         von René Becker         |
          |    Modifiziert von Warringer    |
          |                                 |
          +---------------------------------+
    */
    
    //---------------------------------------------------------
    
    /*    +-----------------+
          |  |            | |
          |  |  Includes  | |
          |  |     &      | |
          |  |  Defines   | |
          |  V            V |
          +-----------------+
    */
    
    //---------------------------------------------------------
    #include <asuro.h>
    
    //---------------------------------------------------------
    #define sekunden 0.4
    //---------------------------------------------------------
    #define MORSE_a blinken(1,1,0); blinken(1,3,2);
    #define MORSE_b blinken(1,3,0); blinken(2,1,0); blinken(1,1,2);
    #define MORSE_c blinken(1,3,0); blinken(1,1,0); blinken(1,3,0); blinken(1,1,2);
    #define MORSE_d blinken(1,3,0); blinken(1,1,0); blinken(1,1,2);
    #define MORSE_e blinken(1,1,2);
    #define MORSE_f blinken(2,1,0); blinken(1,3,0); blinken(1,1,2);
    #define MORSE_g blinken(2,3,0); blinken(1,1,2);
    #define MORSE_h blinken(3,1,0); blinken(1,1,2);
    #define MORSE_i blinken(1,1,0); blinken(1,1,2);
    #define MORSE_j blinken(1,1,0); blinken(2,3,0); blinken(1,3,2);
    #define MORSE_k blinken(1,3,0); blinken(1,1,0); blinken(1,3,2);
    #define MORSE_l blinken(1,1,0); blinken(1,3,0); blinken(1,1,0); blinken(1,1,2);
    #define MORSE_m blinken(1,3,0); blinken(1,3,2);
    #define MORSE_n blinken(1,3,0); blinken(1,1,2);
    #define MORSE_o blinken(2,3,0); blinken(1,3,2);
    #define MORSE_p blinken(1,1,0); blinken(2,3,0); blinken(1,1,2);
    #define MORSE_q blinken(2,3,0); blinken(1,1,0); blinken(1,3,2);
    #define MORSE_r blinken(1,1,0); blinken(1,3,0); blinken(1,1,2);
    #define MORSE_s blinken(2,1,0); blinken(1,1,2);
    #define MORSE_t blinken(1,3,2);
    #define MORSE_u blinken(2,1,0); blinken(1,3,2);
    #define MORSE_v blinken(3,1,0); blinken(1,3,2);
    #define MORSE_w blinken(1,1,0); blinken(1,3,0); blinken(1,3,2);
    #define MORSE_x blinken(1,3,0); blinken(2,1,0); blinken(1,3,2);
    #define MORSE_y blinken(1,3,0); blinken(1,1,0); blinken(1,3,0); blinken(1,3,2);
    #define MORSE_z blinken(2,3,0); blinken(1,1,0); blinken(1,1,2);
    #define MORSE_wortende Msleep(5*einheit);
    #define MORSE_punkt blinken(1,1,0); blinken(1,3,0); blinken(1,1,0); blinken(1,3,0); blinken(1,1,0); blinken(1,3,2);
    //---------------------------------------------------------
    
    /*    +----------------------+
          |  |                |  |
          |  | Unterprogramme |  |
          |  V                V  |
          +----------------------+
    */
    
    //---Einheit-----------------------------------------------
    uint16_t einheit = sekunden*1000;
    //---------------------------------------------------------
    
    //---Wort/Satz/Buchstabe-----------------------------------
    char einZeichen[] = "#";
    char Zeichenkette[] = "";
    uint8_t z1, z2 = 0;
    
    //---Blinken-----------------------------------------------   
    int blinken(int anzahl,int multipl,int endsleep)
    {
    	int xx;
    	for (xx=0;xx<anzahl;xx++)
    	{
    		BackLED(ON, ON);
    		Msleep(multipl*einheit);
    		BackLED(OFF, OFF);
    		Msleep(einheit);
    	}
    	Msleep(endsleep*einheit);
    	return(0);
    }
    //---------------------------------------------------------
    
    //----Hyperterminaleingabe---------------------------------
    
    //---------------------------------------------------------
    
    /*    +----------------------+
          |  |                |  |
          |  |  Hauptprogramm |  |
          |  V                V  |
          +----------------------+
    */
    
    //---Main--------------------------------------------------
    int main ()
    {
    	Init();
    	while(1)
    	{
    		z1=0;
    		do
    		{
    			SerRead(einZeichen,1,0);       // warten bis ein Zeichen über IR kommt
    			SerWrite(&einZeichen[0],1);    // Kontrollausgabe zum Terminal
    			Zeichenkette[z1] = einZeichen[0];
    			z1++;
    		}   
    		while (einZeichen[0] != 0x09);   // solange Zeichen einlesen bis VT erkannt wird
    		for (z2 = 0; z2 < z1; z2++)
    		{
    			switch (Zeichenkette[z2])         // der erste Index von einZeichen[] ist 0
    			{
    				case ('a'): MORSE_a; break;
    				case ('b'): MORSE_b; break;
    				case ('c'): MORSE_c; break;
    				case ('d'): MORSE_d; break;
    				case ('e'): MORSE_e; break;
    				case ('f'): MORSE_f; break;
    				case ('g'): MORSE_g; break;
    				case ('h'): MORSE_h; break;
    				case ('i'): MORSE_i; break;
    				case ('j'): MORSE_j; break;
    				case ('k'): MORSE_k; break;
    				case ('l'): MORSE_l; break;
    				case ('m'): MORSE_m; break;
    				case ('n'): MORSE_n; break;
    				case ('o'): MORSE_o; break;
    				case ('p'): MORSE_p; break;
    				case ('q'): MORSE_q; break;
    				case ('r'): MORSE_r; break;
    				case ('s'): MORSE_s; break;
    				case ('t'): MORSE_t; break;
    				case ('u'): MORSE_u; break;
    				case ('v'): MORSE_v; break;
    				case ('w'): MORSE_w; break;
    				case ('x'): MORSE_x; break;
    				case ('y'): MORSE_y; break;
    				case ('z'): MORSE_z; break;
    				case (' '): MORSE_wortende; break;
    				case ('.'): MORSE_punkt; break;
    				default: break;
    			}
    		}
    	}
    	return(0);
    }
    Möglich daß da die breaks in der Case Unterscheidung gefehlt haben...

    Noch ein kleiner Tip, benutze einen einfachen Texteditor um den Code ein wenig leserlicher zu machen wenn, du ihn hier postest.

  4. #24
    Neuer Benutzer Öfters hier
    Registriert seit
    23.07.2007
    Beiträge
    13
    Vielen Dank für die Hilfe, es funktioniert

Seite 3 von 3 ErsteErste 123

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress