Forum


MI-Labor 4  

  RSS
(@tigerclaw)
Mitglied Admin

//#include "avr/io.h"
#include "stdio.h"
const char CODE="1234";
int i,j;
//int  warten_richtige_eingabe (int);

int taktgeber=0;

void delay(int);

int main()
	{
		//DDRB=0xff; 			//led's initialisieren
		//PORTB=0xaa;			//led-muster anschalten
						//teil 2
//		PIND=0xff;			//pullup ON
//		DDRB=0xff;			//output ON
//		PORTB=0x00;
				
printf ("CODE: %c ",CODE);		
		for(;;)
		{	
		
			//PORTD=CODE;
//			while(PIND!=0xff)			//erkennung schalter wieder loselassen
				;
//			while(PIND!=0x7f)			//erkennung schalter wieder loselassen
				;	
				

			
			delay(50);	
			
			
			
	
	}

}

void delay (int t)
{
	for (j=0; j<i; j++)
;//	{asm("nop"); }
}




/*
bool taster (void);
int schalten (int);
void delay (void);
int  warten_richtige_eingabe (int);

char CODE='a';

int main()                             
{
int portD=0;    
   for(;;)                                                            //forever
    {
        warten_richtige_eingabe (portD);
        schalten (portD);                                             //ein
        portD=1;
        delay();
        printf ("in main-schleife portD 0:   %i  ",portD)  ;   
        //cout <>taster;
       if (x==CODE) 
       {
          schalten (portD);
          return (portD);  
       }      
    }
}

int schalten (int portD)                  
{ 
     if (portD==0)
     {
        portD=portD+1;
        printf ("einschaltvorgang = %i    ",portD ); 
        cout << endl;       
     }
        else
        {
           portD=0;
           printf ("einschlatvorgang = %i    ",portD );
           cout << endl;
        }
     return (portD);
}

void delay (void)
{
   for (int i=0; i<5000; i++)
   {
      
   }     
     
}
*/

Zitat
Veröffentlicht : 19/06/2007 11:09 am
(@tigerclaw)
Mitglied Admin

Andere VERSION:


#include "avr/io.h"
int i=0;				//Deklaration der Zähl_Variable
int Welcher_Knopf=0x04;	//Hier definieren wir,welche taste gedr√ľckt werden muss
						//um Zeitpunkt der Anzeige der Zufallszahl zu bestimmen, in dem Fall taste 1

int main()
{
	DDRB=0xff; 			//Transistoren einschalten, die Strom durch Dioden schicken
	PORTB=~0x00;		// Alle LEDs ausschalten 
						// Negiertes Low oder normales High
						// low=0 (Dioden an); high=1 (Dioden aus)
	DDRD=0x00;			// kann auch weggelassen werden
	PORTD=0x01; 		//Eingang PORTD
	
	for ( ; ; )     
	{
		while ((Welcher_Knopf&PIND)!=0x04)  // 0=Low (an), Solang nicht gedr√ľckt
											// soll die Schleife weiterlaufen (weil PORTD=0x00)
		{

			i++;							//INkrementieren von i
/*			
			 if (i==255) 
			 {
			 	i=0;
			 }
*/			 
		

		};


	PORTB=i;								//Ausgabe von Zufallszahl auf PortB

	};
	

		return 0;
}




-----------------------------------------------------------------------------------
.include "mega128.inc"


main: 

ldi R16, 0xff	; PORT=>LEDs 
sts DDRB, R16	; PortB als Ausgang definieren

ldi R16, 0x00	; kann auch weggelassen werden
sts DDRD, R16

ldi R16, 0x01	; PORTD=>PullUp
sts PORTD, R16	; Pullupwiederstände in PortD anschalten

ldi R16, ~0x00  ; Anfangswert f√ľr die LEDs, alle aus!
sts PORTB, R16	; 


for_loop:

inc R16 		; Zufallszahl inkrementieren (Variable i) 
lds R19, PIND	; Laden Tastenzustand in R19
ldi R20, ~0x04	; Welcher_Knopf 
cp R19,R20 		; Vergleich

brne for_loop 	; Verzweigen, wenn Register gleich | 
				; Verzweigungsort


ausgabe:
sts PORTB,R16	; Zufallszahl auf PortB ausgeben

jmp for_loop

-----------------------------------------------------------------------
#include "avr/io.h"

unsigned int i=0;
unsigned int j=0;
unsigned int ausgabe=0;

int main()
	{
		DDRB=0xff; //Transistoren einschalten, die Strom durch Dioden schicken
		PORTB=~0x00; // Alle LEDs ausschalten

		DDRD=0x00;
		PORTD=0x01;	



	for (; ; )
	{
		ausgabe++;
			
			for (i=0; i<17;i++ )
				{
		
					for (j=0;j<31200;j++);

		
		
				
		PORTB=~ausgabe;		
		}

	}


return 0;

	}
AntwortZitat
Veröffentlicht : 19/06/2007 11:10 am