Changeset 87 in projects
- Timestamp:
- Sep 13, 2013, 3:45:09 PM (11 years ago)
- Location:
- magnetic-tape-show
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
magnetic-tape-show/Magnetic-Tape-Show.c
r85 r87 21 21 DDRB = 0x00 | (1 << DDB0); // LED Output 22 22 DDRC = 0xFF; // Relais 9-13, Register nicht voll belegt *TODO* 23 DDRD = 0x00 | (1 << DDD 2) | (1 << DDD3); // Relais 16, 1723 DDRD = 0x00 | (1 << DDD3) | (1 << DDD4); // Relais 16, 17 24 24 25 25 // jetzt mit Werten belegen, Default: Alle Relais sind aus! -
magnetic-tape-show/pseudosprache.h
r82 r87 31 31 #define SEKUNDE SEKUNDEN 32 32 33 #define warte(dauer) _delay_ms(dauer )33 #define warte(dauer) _delay_ms(dauer * SCALING) 34 34 35 35 /* -
magnetic-tape-show/spielplan.c
r86 r87 10 10 11 11 void abspielen() { 12 // Start des Plans, Heribert 13.08.2013, 18:50 13 warte(3 * SEKUNDEN); tape1_on(AN); // RELAIS 02 14 warte(1 * SEKUNDEN); tape1_on(AUS); // RELAIS ... 15 tape2_on(AN); // .... usw.. 16 warte(1 * SEKUNDEN); tape2_on(AUS); 17 warte(1 * SEKUNDEN); tape0_on(AN); 18 warte(1 * SEKUNDEN); tape0_on(AUS); 19 tape1_for(AN); 20 warte(3 * SEKUNDEN); tape2_for(AN); 21 warte(5 * SEKUNDEN); tape2_for(AUS); 22 warte(0.5 * SEKUNDEN); tape0_for(AN); 23 warte(1.5 * SEKUNDEN); tape1_for(AUS); 24 warte(0.5 * SEKUNDEN); tape1_read(AN); 25 warte(0.5 * SEKUNDEN); tape2_for(AN); 26 warte(4 * SEKUNDEN); tape1_read(AUS); 27 warte(2.5 * SEKUNDEN); tape0_for(AUS); 28 warte(0.5 * SEKUNDEN); tape2_for(AUS); 29 warte(0.5 * SEKUNDEN); tape0_read(AN); 30 warte(4.5 * SEKUNDEN); tape1_for(AN); 31 warte(1 * SEKUNDEN); tape0_read(AUS); 32 warte(2 * SEKUNDEN); tape0_for(AN); 33 warte(5 * SEKUNDEN); tape2_for(AN); 34 warte(1 * SEKUNDEN); tape0_for(AUS); 35 warte(1 * SEKUNDEN); tape1_for(AUS); 36 warte(0.5 * SEKUNDEN); tape0_read(AN); 37 warte(3.5 * SEKUNDEN); tape2_for(AUS); 38 warte(1 * SEKUNDEN); tape0_for(AN); 39 warte(1 * SEKUNDEN); tape0_read(AUS); 40 warte(3 * SEKUNDEN); tape1_read(AN); 41 warte(2 * SEKUNDEN); tape0_for(AUS); 42 warte(1 * SEKUNDEN); tape0_rew(AN); 43 warte(1 * SEKUNDEN); tape0_rew(AUS); 44 warte(1 * SEKUNDEN); tape1_read(AUS); 45 warte(1 * SEKUNDEN); tape2_rew(AN); 46 warte(1 * SEKUNDEN); tape2_rew(AUS); 47 tape1_rew(AN); 48 warte(1 * SEKUNDEN); tape1_rew(AUS); 49 warte(13 * SEKUNDEN); tape0_lp(AN); 50 warte(1 * SEKUNDEN); tape0_lp(AUS); 51 warte(4 * SEKUNDEN); tape0_off(AN); 52 warte(1 * SEKUNDEN); tape0_off(AUS); 53 warte(5 * SEKUNDEN); tape1_off(AN); 54 warte(0.5 * SEKUNDEN); tape2_off(AN); 55 warte(0.5 * SEKUNDEN); tape1_off(AUS); 56 warte(0.5 * SEKUNDEN); tape2_off(AUS); 12 // Testprogramm: Alle Relais gleichzeitig an und aus 13 /* 14 while(1) { 15 PORTA = 0xFF; 16 PORTC = 0xFF; 17 PORTD = 0xFF; 18 _delay_ms(2000.0); 19 PORTA = 0; 20 PORTC = 0; 21 PORTD = 0; 22 _delay_ms(2000.0); 23 } 24 */ 25 // Testprogramm: Mit jedem Tastendruck einen Punkt weiter im Spielplan 28.08.13 26 /* 27 int i = 0; 28 while(1) { 29 while(is_button()) { 30 switch(i) { 31 case 1: sound_on; break; // REL 16 Text1 32 case 2: tape1_on; break; // REL 01 2 33 case 3: tape2_on; break; // REL 05 2,5 34 case 4: tape1_for(AN); break; // REL 02 4 Text2 35 case 5: tape2_for(AN); break; // REL 06 8 Text3 36 case 6: tape1_for(AUS); break; // REL 02 13 Text4 37 case 7: tape2_for(AUS); break; // REL 06 16 Text5 38 case 8: tape1_read(AN); break; // REL 15 20 Text6 39 case 9: tape1_read(AUS);break; // REL 15 27 40 case 10: tape0_on; break; // REL 09 28 Text7 41 case 11: tape0_for(AN); break; // REL 10 30 42 case 12: tape0_for(AUS); break; // REL 10 35 43 case 13: tape0_read(AN); break; // REL 11 36 Text9 44 case 14: tape0_read(AUS);break; // REL 11 41 45 case 15: tape1_for(AN); break; // REL 02 42 Text10 46 case 16: tape2_for(AN); break; // REL 06 42 47 case 17: tape0_for(AN); break; // REL 10 42 48 case 18: tape1_for(AUS); break; // REL 02 47 49 case 19: tape0_for(AUS); break; // REL 10 47 50 case 20: tape2_for(AUS); break; // REL 06 47 51 case 21: tape0_read(AN); break; // REL 11 48 Text11 52 case 22: tape1_read(AN); break; // REL 15 48 53 case 23: tape0_read(AUS);break; // REL 11 55 54 case 24: tape1_read(AUS);break; // REL 15 55 55 case 25: tape1_rew; break; // REL 03 56 Text12 56 case 26: tape0_rew; break; // REL 12 57 57 case 27: tape2_rew; break; // REL 07 58 58 case 28: tape0_lp; break; // REL 13 70 Text13 59 case 29: tape0_off; break; // REL 14 76 Text14 60 case 30: tape1_off; break; // REL 04 78 61 case 31: tape2_off; break; // REL 08 78,5 Text15 62 } 63 warte(1 * SEKUNDE); 64 i++; 65 } 66 } 67 */ 68 69 70 71 72 // Stand des Plans: 28.08.2013, hinter REL-Nr. stehen die absoluten Zeiten und Textnummern 73 warte(1 * SEKUNDEN); sound_on; // REL 16 Text1 74 warte(1 * SEKUNDEN); tape1_on; // REL 01 2 75 warte(0.5 * SEKUNDEN); tape2_on; // REL 05 2,5 76 warte(1.5 * SEKUNDEN); tape1_for(AN); // REL 02 4 Text2 77 warte(4 * SEKUNDEN); tape2_for(AN); // REL 06 8 Text3 78 warte(5 * SEKUNDEN); tape1_for(AUS); // REL 02 13 Text4 79 warte(3 * SEKUNDEN); tape2_for(AUS); // REL 06 16 Text5 80 warte(4 * SEKUNDEN); tape1_read(AN); // REL 15 20 Text6 81 warte(7 * SEKUNDEN); tape1_read(AUS);// REL 15 27 82 warte(1 * SEKUNDEN); tape0_on; // REL 09 28 Text7 83 warte(2 * SEKUNDEN); tape0_for(AN); // REL 10 30 84 warte(5 * SEKUNDEN); tape0_for(AUS); // REL 10 35 85 warte(1 * SEKUNDEN); tape0_read(AN); // REL 11 36 Text9 86 warte(5 * SEKUNDEN); tape0_read(AUS);// REL 11 41 87 warte(1 * SEKUNDEN); tape1_for(AN); // REL 02 42 Text10 88 warte(0 * SEKUNDEN); tape2_for(AN); // REL 06 42 89 warte(0 * SEKUNDEN); tape0_for(AN); // REL 10 42 90 warte(5 * SEKUNDEN); tape1_for(AUS); // REL 02 47 91 warte(0 * SEKUNDEN); tape0_for(AUS); // REL 10 47 92 warte(0 * SEKUNDEN); tape2_for(AUS); // REL 06 47 93 warte(1 * SEKUNDEN); tape0_read(AN); // REL 11 48 Text11 94 warte(0 * SEKUNDEN); tape1_read(AN); // REL 15 48 95 warte(7 * SEKUNDEN); tape0_read(AUS);// REL 11 55 96 warte(0 * SEKUNDEN); tape1_read(AUS);// REL 15 55 97 warte(1 * SEKUNDEN); tape1_rew; // REL 03 56 Text12 98 warte(1 * SEKUNDEN); tape0_rew; // REL 12 57 99 warte(1 * SEKUNDEN); tape2_rew; // REL 07 58 100 warte(12 * SEKUNDEN); tape0_lp; // REL 13 70 Text13 101 warte(6 * SEKUNDEN); tape0_off; // REL 14 76 Text14 102 warte(2 * SEKUNDEN); tape1_off_set(AN); // REL 04 78 103 warte(0.5 * SEKUNDEN); tape2_off_set(AN); // REL 08 78,5 Text15 104 warte(0.5 * SEKUNDEN); tape1_off_set(AUS); 105 warte(0.5 * SEKUNDEN); tape2_off_set(AUS); 106 57 107 } -
magnetic-tape-show/wiring.h
r86 r87 14 14 #define OSCSPEED 8000000UL /* in Hz */ 15 15 #define F_CPU OSCSPEED 16 17 // Time scaling, 1 = Original 18 #define SCALING 1.2 16 19 17 20 #include "avr/io.h" … … 38 41 //#define RELAIS_02 PORTA1 39 42 //#define RELAIS_03 PORTA2 40 #define RELAIS_02 PORTD 241 #define RELAIS_03 PORTD 343 #define RELAIS_02 PORTD3 44 #define RELAIS_03 PORTD4 42 45 43 46 #define RELAIS_04 PORTA3 … … 77 80 #define set_impuls(PORTi, RELAISj) ({ \ 78 81 set_bit(PORTi, RELAISj, TRUE); \ 79 _delay_ms(1000 ); \82 _delay_ms(1000 * SCALING); \ 80 83 set_bit(PORTi, RELAISj, FALSE); \ 81 84 }) 82 85 83 86 84 //#define tape1_on_impuls() set_impuls(PORTA, RELAIS_01) 85 #define tape1_on(v) set_bit(PORTA, RELAIS_01, v) 87 #define sound_on set_impuls(PORTC, RELAIS_16) 88 89 #define tape1_on set_impuls(PORTA, RELAIS_01) 90 #define tape1_on_set(v) set_bit(PORTA, RELAIS_01, v) 86 91 #define tape1_for(v) set_bit(PORTD, RELAIS_02, v) 87 #define tape1_rew(v) set_bit(PORTD, RELAIS_03, v) 88 //#define tape1_off() set_impuls(PORTA, RELAIS_04) 89 #define tape1_off(v) set_bit(PORTA, RELAIS_04, v) 90 #define tape1_read(v) set_bit(PORTA, RELAIS_15, v) 92 #define tape1_rew set_impuls(PORTD, RELAIS_03) 93 #define tape1_rew_set(v) set_bit(PORTD, RELAIS_03, v) 94 #define tape1_off set_impuls(PORTA, RELAIS_04) 95 #define tape1_off_set(v) set_bit(PORTA, RELAIS_04, v) 96 #define tape1_read(v) set_bit(PORTC, RELAIS_15, v) 91 97 92 #define tape2_on(v) set_bit(PORTA, RELAIS_05, v) 98 #define tape2_on set_impuls(PORTA, RELAIS_05) 99 #define tape2_on_set(v) set_bit(PORTA, RELAIS_05, v) 93 100 #define tape2_for(v) set_bit(PORTA, RELAIS_06, v) 94 #define tape2_rew(v) set_bit(PORTA, RELAIS_07, v) 95 #define tape2_off(v) set_bit(PORTA, RELAIS_08, v) 101 #define tape2_rew set_impuls(PORTA, RELAIS_07) 102 #define tape2_rew_set(v) set_bit(PORTA, RELAIS_07, v) 103 #define tape2_off set_impuls(PORTA, RELAIS_08) 104 #define tape2_off_set(v) set_bit(PORTA, RELAIS_08, v) 96 105 97 #define tape0_on(v) set_bit(PORTC, RELAIS_09, v) 106 #define tape0_on set_impuls(PORTC, RELAIS_09) 107 #define tape0_on_set(v) set_bit(PORTC, RELAIS_09, v) 98 108 #define tape0_for(v) set_bit(PORTC, RELAIS_10, v) 99 109 #define tape0_read(v) set_bit(PORTC, RELAIS_11, v) 100 #define tape0_rew(v) set_bit(PORTC, RELAIS_12, v) 101 #define tape0_lp(v) set_bit(PORTC, RELAIS_13, v) 102 #define tape0_off(v) set_bit(PORTC, RELAIS_14, v) 110 #define tape0_rew set_impuls(PORTC, RELAIS_12) 111 #define tape0_rew_set(v) set_bit(PORTC, RELAIS_12, v) 112 #define tape0_lp set_impuls(PORTC, RELAIS_13) 113 #define tape0_lp_set(v) set_bit(PORTC, RELAIS_13, v) 114 #define tape0_off set_impuls(PORTC, RELAIS_14) 115 #define tape0_off_set(v) set_bit(PORTC, RELAIS_14, v) 103 116 104 117 #define sound_start(v) set_bit(PORTC, RELAIS_16, v)
Note: See TracChangeset
for help on using the changeset viewer.