Changeset 87 in projects


Ignore:
Timestamp:
Sep 13, 2013, 3:45:09 PM (11 years ago)
Author:
sven
Message:

Implementierung und Testen des Geraetes und neusten Spielplans im Musem am Di 10.09.2013.

Location:
magnetic-tape-show
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • magnetic-tape-show/Magnetic-Tape-Show.c

    r85 r87  
    2121        DDRB = 0x00 | (1 << DDB0); // LED Output
    2222        DDRC = 0xFF; // Relais 9-13, Register nicht voll belegt *TODO*
    23         DDRD = 0x00 | (1 << DDD2) | (1 << DDD3); // Relais 16, 17       
     23        DDRD = 0x00 | (1 << DDD3) | (1 << DDD4); // Relais 16, 17       
    2424       
    2525        // jetzt mit Werten belegen, Default: Alle Relais sind aus!
  • magnetic-tape-show/pseudosprache.h

    r82 r87  
    3131#define SEKUNDE SEKUNDEN
    3232
    33 #define warte(dauer) _delay_ms(dauer)
     33#define warte(dauer) _delay_ms(dauer * SCALING)
    3434
    3535/*
  • magnetic-tape-show/spielplan.c

    r86 r87  
    1010
    1111void 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       
    57107}
  • magnetic-tape-show/wiring.h

    r86 r87  
    1414#define OSCSPEED        8000000UL               /* in Hz */
    1515#define F_CPU       OSCSPEED
     16
     17// Time scaling, 1 = Original
     18#define SCALING  1.2
    1619
    1720#include "avr/io.h"
     
    3841//#define RELAIS_02  PORTA1
    3942//#define RELAIS_03  PORTA2
    40 #define RELAIS_02  PORTD2
    41 #define RELAIS_03  PORTD3
     43#define RELAIS_02  PORTD3
     44#define RELAIS_03  PORTD4
    4245
    4346#define RELAIS_04  PORTA3
     
    7780#define  set_impuls(PORTi, RELAISj)  ({ \
    7881        set_bit(PORTi, RELAISj, TRUE); \
    79         _delay_ms(1000); \
     82        _delay_ms(1000 * SCALING); \
    8083        set_bit(PORTi, RELAISj, FALSE); \
    8184        })
    8285
    8386
    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)
    8691#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)
    9197
    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)
    93100#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)
    96105
    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)
    98108#define tape0_for(v)            set_bit(PORTC, RELAIS_10, v)
    99109#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)
    103116
    104117#define sound_start(v)          set_bit(PORTC, RELAIS_16, v)
Note: See TracChangeset for help on using the changeset viewer.
© 2008 - 2013 technikum29 • Sven Köppel • Some rights reserved
Powered by Trac
Expect where otherwise noted, content on this site is licensed under a Creative Commons 3.0 License