19.06.2007 - 11:09:05 Uhr |
 TigerClaw  Themenstarter Registriert seit: November 2005 Wohnort: Hessen HomepageBeiträge: 72 |
MI-Labor 4 Code: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 | //#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 << endl; delay(); //entprellen warten_richtige_eingabe (portD); schalten (portD); //aus portD=0; printf ("in main-schleife portD 0: %i ",portD) ;
} } int warten_richtige_eingabe (int portD) { for (;;) //forever { char x=0; x=getchar ();//string taster; // auf enigabe "a" warten // cin>>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++) { } } */ |
_________________________ Nicht in die ferne Zeit verliere dich, Den Augenblick ergreifen, Der ist dein"
|
 |
|
19.06.2007 - 11:10:33 Uhr |
 TigerClaw  Themenstarter Registriert seit: November 2005 Wohnort: Hessen HomepageBeiträge: 72 |
Andere VERSION:
Code: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 | #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;
} |
_________________________ Nicht in die ferne Zeit verliere dich, Den Augenblick ergreifen, Der ist dein"
|
 |
|