Changeset 81 in projects


Ignore:
Timestamp:
Aug 13, 2013, 10:27:54 AM (6 years ago)
Author:
heribert-pc
Message:

Bugfixes; delay_ms erwartet auch Compile-Time-Konstante.

Location:
magnetic-tape-show
Files:
3 edited

Legend:

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

    r79 r81  
    2222        DDRC = 0xFF; // Relais 9-13, Register nicht voll belegt *TODO*
    2323        DDRD = 0xFF; // ungenutzt
     24       
     25        // jetzt mit werten belegen
     26        PORTA = 0xFF;
     27        PORTC = 0xFF;
     28       
    2429}
    2530
     
    2732        Initialize();
    2833        while(1) {
    29                 if(is_button()) {
    30                         abspielen();
    31                 }
     34                        if(is_button()) {
     35                                abspielen();
     36                        }
    3237        }
    3338}
  • magnetic-tape-show/pseudosprache.h

    r80 r81  
    1414
    1515#include "wiring.h"
     16#include "math.h"
    1617
    1718void abspielen(); // Header signature for main.c
     
    2223
    2324// Alternativ sowas:
    24 #define leser1_einschalten()   (PORTA &= ~(1 << RELAIS_01))
    25 #define leser1_ausschalten()  (PORTA &= ~(1 << RELAIS_01))
    26 //#define geraet2_impuls(d)     (impuls(PORTB, RELAIS_07, d))
     25#define leser1_einschalten()       (PORTA &= ~(1 << RELAIS_01))
     26#define leser1_ausschalten()       (PORTA |= (1 << RELAIS_01))
     27
    2728
    2829
     
    3132
    3233// Basiseinheit sind Millisekunden
    33 #define MILLISEKUNDEN 1
     34#define MILLISEKUNDEN 1.0
    3435#define MILLISEKUNDE MILLISEKUNDEN
    35 #define SEKUNDEN 1000 * MILLISEKUNDEN
     36#define SEKUNDEN 1000.0 * MILLISEKUNDEN
    3637#define SEKUNDE SEKUNDEN
    3738
    38 static inline void warte(double dauer) {
    39         while(dauer > SEKUNDEN) {
    40                 _delay_ms(SEKUNDE);
    41                 dauer -= SEKUNDE;
    42         }       
     39#define warte(dauer) _delay_ms(dauer)
     40
     41/*
     42#define warte(dauer) \
     43//static inline void warte(double dauer) {
     44        while(dauer >= SEKUNDEN) { \
     45                _delay_ms((int) SEKUNDE); \
     46                dauer -= SEKUNDE; \
     47        } \
    4348        while(dauer > MILLISEKUNDEN)
    44                 _delay_ms(dauer);
     49                _delay_ms((int));
    4550}
     51*/
    4652
    4753
  • magnetic-tape-show/spielplan.c

    r80 r81  
    1111void abspielen() {
    1212       
    13         for(int i = 3; i < 0; i--) {
    14                 leser1_einschalten();
     13        while(1) {
    1514                start_led();
    16                 warte(SEKUNDE);
    17                 stop_led();
    18                 warte(0.5 * SEKUNDE);
    19                 start_led();
     15                PORTA = 0x00;
    2016                warte(0.5 * SEKUNDE);
    2117                stop_led();
    22                 leser1_ausschalten();
    23                 warte(5*SEKUNDE);
     18                PORTA = 0xFF;
     19                warte(SEKUNDE);
    2420        }       
    2521        /*
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