Show Posts
Pages: 1 ... 45 46 [47] 48 49 ... 76
691  International / Deutsch / Re: Lesetipp: c't - Arduino im AVR-Studio programmieren on: April 14, 2012, 05:24:11 pm
Wobei in meinem Link die ersten Kommentare schon im Dezember letzten Jahres gemacht wurden.
Da hat wohl jemand ganz toll ge"Gutenbergt".
 
Ist halt italienische "Copypasta"

Gruß
Daniel
692  International / Deutsch / Re: Lesetipp: c't - Arduino im AVR-Studio programmieren on: April 14, 2012, 08:39:27 am
Du kannst aber auch dem AVR5 Arduino Makros beibringen und die Vorteile vom AVR Studio dazu nutzen. Siehe hier: (Achtung englisch)
http://www.engblaze.com/tutorial-using-avr-studio-5-with-arduino-projects/
693  International / Deutsch / Re: Arduino bleibt "hängen" trotz mircosoft-free on: April 13, 2012, 04:37:46 pm
Laut Arduino Test Suite habe ich noch 1068byte Free Ram
694  International / Deutsch / Re: Arduino bleibt stehen. on: April 13, 2012, 02:41:45 pm
Teil 3/3

Die RTC befehle (wobei die hälfte nicht benutzt  aus meinem andern Projekt)
Code:
/*
RTC Funktionen zur Steuerung der RTC DS1308
 */
void TimeRead(){
  Wire.beginTransmission(RTC_ADDRESS);
  Wire.send(0x00);               // Pointer auf Sekunden
  Wire.endTransmission();
  Wire.requestFrom(RTC_ADDRESS, 3);
  ss= bcdToDec(Wire.receive() & 0x7f);
  mm= bcdToDec(Wire.receive());
  hh= bcdToDec(Wire.receive());

}

void HourRead(){
  Wire.beginTransmission(RTC_ADDRESS);
  Wire.send(0x02);               // Pointer auf Sekunden
  Wire.endTransmission();
  Wire.requestFrom(RTC_ADDRESS, 1);
  hh= bcdToDec(Wire.receive());
  //Serial.println("Stundenlesen");
}

void MinuteRead(){
  Wire.beginTransmission(RTC_ADDRESS);
  Wire.send(0x01);               // Pointer auf Sekunden
  Wire.endTransmission();
  Wire.requestFrom(RTC_ADDRESS, 1);
  mm= bcdToDec(Wire.receive());
  //Serial.println("Minutenlesen");
}

void SecondRead(){
  Wire.beginTransmission(RTC_ADDRESS);
  Wire.send(0x00);               // Pointer auf Sekunden
  Wire.endTransmission();
  Wire.requestFrom(RTC_ADDRESS, 1);
  ss=bcdToDec(Wire.receive() & 0x7f);
  //Serial.println("Sekundenlesen");
}

void RTC_Set(){
  Wire.beginTransmission(RTC_ADDRESS);
  Wire.send(0x00);
  Wire.send(decToBcd(ss));    // 0 to bit 7 starts the clock
  Wire.send(decToBcd(mm));
  Wire.send(decToBcd(hh));      // If you want 12 hour am/pm you need to set
  Wire.endTransmission();
}

byte decToBcd(byte val)
{
  return ((val/10)<<4)+(val%10);
}

// Convert binary coded decimal to normal decimal numbers
byte bcdToDec(byte val)
{
  return ((val>>4)*10)+val%16;
}


void SaveByte(byte x,byte y){                       // Funktion SaveByte("Position","Daten") Daten in Byte Format
  Wire.begin();                                     // Start I2C Kommunikation
  Wire.beginTransmission(RTC_ADDRESS);              // Beginn Kommunikation auf  Adresse 0x68
  Wire.send(x+7);                                // Speicher Register Adresse+0x07   
  Wire.send(y);                                     // zu Speicherndes Byte
  Wire.endTransmission(); 
}

byte ReadByte(byte x){                             // Funktion ReadByte ("Position") Daten in Byte Format
  byte z;
  Wire.beginTransmission(RTC_ADDRESS);
  Wire.send(x+7);
  Wire.endTransmission();
  Wire.requestFrom(RTC_ADDRESS, 1);
  z=Wire.receive();
  return z;
}

Ich nutze die 0023 IDE weil mich die änderungen der 1.0 bzüglich I2C ankotzen. Ich kann nicht einefach 0x00 als Adresse angeben man muss das bei der 1.0 über ein zusätzliche Variable machen.
Ich habe sämtliche andeungen gemach und den Code soweit zusammenestrichen das ich von 10800bytes auf 9384bytes
695  International / Deutsch / Re: Arduino bleibt stehen. on: April 13, 2012, 02:41:03 pm
"Die Wörter" für den LEDs

Code:
/* For the LED code below to work, the LEDs need to be wired in a very specific way
 
 Normally a MAX7221's matrix is wired this way (8x8)
 
 dp| a| b| c| d| e| f| g
 0
 1
 2
 4
 5
 6
 7
 
 However, since the clock is 10x11 we wire 2x MAX7221 this way.
 Essentially, row 5,6,7 is transposed into column 9,10,11
 
 [dp,5]                         [g,5]
 -----------------------------------
 dp| a| b| c| d| e| f| g| 5| 6| 7
 0                       |         e - 5
 1                       |         d - 4
 2                       |         c - 3
 3                       |         b - 2
 4                       |         a - 1
 -----------------------------------
 dp| a| b| c| d| e| f| g| 5| 6| 7
 0                       |         e
 1                       |         d
 2                       |         c
 3                       |         b
 4                       |         a
 ------------------------------------
 [dp,5]                         [g,5]
 
 */
// void setLed(int addr, int row, int col, boolean state);
// void setRow(int addr, int row, byte);

// LED Turn on/off procedures
void LED_CLEAR() {
  LC.clearDisplay(0);
  LC.clearDisplay(1);
}

void Alle_An(){
  LC.setRow(0,0,B11111111);  
  LC.setRow(0,1,B11111111);  
  LC.setRow(0,2,B11111111);  
  LC.setRow(0,3,B11111111);  
  LC.setRow(0,4,B11111111);  
  LC.setRow(0,5,B11111111);  
  LC.setRow(0,6,B11111111);  
  LC.setRow(0,7,B11111111);  
  LC.setRow(1,0,B11111111);  
  LC.setRow(1,1,B11111111);    
  LC.setRow(1,2,B11111111);  
  LC.setRow(1,3,B11111111);  
  LC.setRow(1,4,B11111111);    
  LC.setRow(1,5,B11111111);    
  LC.setRow(1,6,B11111111);    
  LC.setRow(1,7,B11111111);  
}

void W_ESIST() {
  LC.setRow(0,0,B11011100);  // ES IST
}

void M_FUENF() {
  LC.setLed(0,0,7, true); // F
  LC.setLed(0,5,5, true); // Ü
  LC.setLed(0,6,5, true); // N
  LC.setLed(0,7,5, true); // F
}

void M_ZEHN() {
  LC.setRow(0,1,B11110000);  // ZEHN
}


void M_ZWANZIG () {
  LC.setRow(0,1,B00001111);  //ZWAN
  LC.setLed(0,5,4,true);      // Z
  LC.setLed(0,6,4,true);      // I
  LC.setLed(0,7,4,true);      // G
}

void M_VIERTEL () {
  LC.setRow(0,2,B00001111);  //VIER
  LC.setLed(0,5,3,true);// T
  LC.setLed(0,6,3,true);// E
  LC.setLed(0,7,3,true);// L
}

void W_NACH () {
  LC.setRow(0,3,B00111100);  //NACH
}

void W_VOR () {
  LC.setRow(0,3,B00000011);  //VO
  LC.setLed(0,5,2,true);// R
}


void M_HALB() {
  LC.setLed(0,4,0,true); //H
  LC.setLed(0,4,1,true); //A
  LC.setLed(0,4,2,true); //L
  LC.setLed(0,4,3,true); //B
}

void H_ZWOELF(){
  LC.setLed(0,4,5,true); //Z
  LC.setLed(0,4,6,true); //W
  LC.setLed(0,4,7,true); //Ö
  LC.setLed(0,5,1,true);// L
  LC.setLed(0,6,1,true);// F
}

void H_ZWEI(){
  LC.setRow(1,0,B11110000);  //ZWEI
}

void H_EIN(){
  LC.setRow(1,0,B00111000);  //EIN
}

void H_EINS(){
  LC.setRow(1,0,B00111100);  //EINS
}

void H_SIEBEN(){
  LC.setRow(1,0,B00000111);  //SIE
  LC.setLed(1,5,5,true);// B
  LC.setLed(1,6,5,true);// E
  LC.setLed(1,7,5,true);// N
}

void H_DREI(){
  LC.setRow(1,1,B01111000);  //DREI
}

void H_FUENF(){
  LC.setRow(1,1,B00000001);  //F
  LC.setLed(1,5,4,true);// Ü
  LC.setLed(1,6,4,true);// N
  LC.setLed(1,7,4,true);// F
}

void H_ELF () {
  LC.setRow(1,2,B11100000);  //ELF
}

void H_NEUN (){
  LC.setRow(1,2,B00011110);  //NEUN
}

void H_VIER (){
  LC.setRow(1,2,B00000001);  //V
  LC.setLed(1,5,3,true);  // I
  LC.setLed(1,6,3,true);  // E
  LC.setLed(1,7,3,true);  // R
}

void H_ACHT (){
  LC.setRow(1,3,B01111000);  //ACHT
}

void H_ZEHN () {
  LC.setRow(1,3,B00000111);  //ZEH
  LC.setLed(1,5,2,true);  // N
}

void H_SECHS(){
  LC.setRow(1,4,B01111100);  //SECHS
}

void W_UHR(){
  LC.setLed(1,5,1,true);  // U
  LC.setLed(1,6,1,true);  // H
  LC.setLed(1,7,1,true);  // R

}

void P_EINS() {
  LC.setLed(0,5,0,true); // top left
}
void P_ZWEI() {
  LC.setLed(0,5,0,true); // top left
  LC.setLed(0,5,7,true); // top right
}
void P_DREI() {
  LC.setLed(0,5,0,true); // top left
  LC.setLed(0,5,7,true); // top right
  LC.setLed(1,5,7,true);// bottom right
}
void P_VIER() {
  LC.setLed(0,5,0,true); // top left
  LC.setLed(0,5,7,true); // top right
  LC.setLed(1,5,7,true);// bottom right
  LC.setLed(1,5,0,true); // bottom left
}

void R_CLEAR() {
  LC.setColumn(0,6,B00000000);
  LC.setColumn(0,7,B00000000);
  LC.setRow(0,5,B00000000);
  LC.setRow(0,6,B00000000);
  LC.setRow(0,7,B00000000);
  LC.setColumn(1,6,B00000000);
  LC.setColumn(1,7,B00000000);
  LC.setRow(1,5,B00000000);
  LC.setRow(1,6,B00000000);
  LC.setRow(1,7,B00000000);

}



// SECONDS COUNTER MODE
void L_ZERO(){
  LC.setRow(0,2,B01110000);
  LC.setRow(0,3,B10001000);
  LC.setRow(0,4,B10011000);
  LC.setRow(1,0,B10101000);
  LC.setRow(1,1,B11001000);
  LC.setRow(1,2,B10001000);
  LC.setRow(1,3,B01110000);
}

void L_ONE(){
  LC.setRow(0,2,B00100000);
  LC.setRow(0,3,B01100000);
  LC.setRow(0,4,B00100000);
  LC.setRow(1,0,B00100000);
  LC.setRow(1,1,B00100000);
  LC.setRow(1,2,B00100000);
  LC.setRow(1,3,B01110000);
}
void L_TWO(){
  LC.setRow(0,2,B01110000);
  LC.setRow(0,3,B10001000);
  LC.setRow(0,4,B00001000);
  LC.setRow(1,0,B00010000);
  LC.setRow(1,1,B00100000);
  LC.setRow(1,2,B01000000);
  LC.setRow(1,3,B11111000);
}
void L_THREE(){
  LC.setRow(0,2,B11111000);
  LC.setRow(0,3,B00010000);
  LC.setRow(0,4,B00100000);
  LC.setRow(1,0,B00010000);
  LC.setRow(1,1,B00001000);
  LC.setRow(1,2,B10001000);
  LC.setRow(1,3,B01110000);
}
void L_FOUR(){
  LC.setRow(0,2,B00010000);
  LC.setRow(0,3,B00110000);
  LC.setRow(0,4,B01010000);
  LC.setRow(1,0,B10010000);
  LC.setRow(1,1,B11111000);
  LC.setRow(1,2,B00010000);
  LC.setRow(1,3,B00010000);
}
void L_FIVE(){
  LC.setRow(0,2,B11111000);
  LC.setRow(0,3,B10000000);
  LC.setRow(0,4,B10000000);
  LC.setRow(1,0,B11110000);
  LC.setRow(1,1,B00001000);
  LC.setRow(1,2,B10001000);
  LC.setRow(1,3,B01110000);
}
void R_ZERO(){
  LC.setColumn(0,6,B00011000);
  LC.setLed(0,2,7,true);
  LC.setLed(0,5,3,true);
  LC.setRow(0,6,B01010000);
  LC.setRow(0,7,B01100000);
  LC.setColumn(1,6,B11100000);
  LC.setColumn(1,7,B01010000);
  LC.setRow(1,5,B00100100);
  LC.setRow(1,6,B00100000);
  LC.setRow(1,7,B00011100);
}
void R_ONE(){
  LC.setLed(0,3,7,true);
  LC.setRow(0,5,B01110000);
  LC.setRow(1,5,B00111100);
  LC.setLed(1,3,7,true);
  LC.setLed(1,6,2,true);
}
void R_TWO(){
  LC.setLed(0,3,6,true);
  LC.setLed(0,2,7,true);
  LC.setLed(0,5,3,true);
  LC.setLed(0,6,3,true);
  LC.setRow(0,7,B01100000);

  LC.setLed(1,3,6,true);
  LC.setColumn(1,7,B00110000);
  LC.setRow(1,5,B00101000);
  LC.setRow(1,6,B00100100);
  LC.setLed(1,7,2,true);
}

void R_THREE(){
  LC.setLed(0,2,6,true);
  LC.setLed(0,2,7,true);
  LC.setRow(0,5,B01010000);
  LC.setRow(0,6,B00110000);
  LC.setLed(0,7,3,true);

  LC.setLed(1,2,6,true);
  LC.setLed(1,3,7,true);
  LC.setLed(1,5,2,true);
  LC.setRow(1,6,B00100100);
  LC.setRow(1,7,B00011000);
}

void R_FOUR(){
  LC.setLed(0,4,7,true);
  LC.setLed(0,5,2,true);
  LC.setRow(0,6,B01110000);

  LC.setColumn(1,6,B11000000);
  LC.setLed(1,1,7,true);
  LC.setLed(1,5,4,true);
  LC.setRow(1,6,B00111100);
  LC.setLed(1,7,4,true);
}

void R_FIVE(){
  LC.setColumn(0,6,B00111000);
  LC.setLed(0,2,7,true);
  LC.setLed(0,5,3,true);
  LC.setLed(0,6,3,true);
  LC.setLed(0,7,3,true);

  LC.setColumn(1,6,B10100000);
  LC.setColumn(1,7,B10010000);
  LC.setRow(1,5,B00100100);
  LC.setRow(1,6,B00100100);
  LC.setRow(1,7,B00011000);
}

void R_SIX(){
  LC.setLed(0,4,6,true);
  LC.setLed(0,3,7,true);
  LC.setLed(0,5,3,true);
  LC.setLed(0,6,3,true);

  LC.setColumn(1,6,B11100000);
  LC.setColumn(1,7,B10010000);
  LC.setRow(1,5,B00100100);
  LC.setRow(1,6,B00100100);
  LC.setRow(1,7,B00011000);
}

void R_SEVEN(){
  LC.setLed(0,2,6,true);
  LC.setLed(0,2,7,true);
  LC.setLed(0,5,3,true);
  LC.setRow(0,6,B01010000);
  LC.setRow(0,7,B00110000);

  LC.setColumn(1,7,B01110000);
  LC.setLed(1,5,5,true);
}

void R_EIGHT(){
  LC.setColumn(0,6,B00011000);
  LC.setLed(0,2,7,true);
  LC.setLed(0,5,3,true);
  LC.setLed(0,6,3,true);
  LC.setRow(0,7,B01100000);

  LC.setColumn(1,6,B01100000);
  LC.setColumn(1,7,B10010000);
  LC.setRow(1,5,B00100100);
  LC.setRow(1,6,B00100100);
  LC.setRow(1,7,B00011000);
}

void R_NINE(){
  LC.setColumn(0,6,B00011000);
  LC.setLed(0,2,7,true);
  LC.setLed(0,5,3,true);
  LC.setLed(0,6,3,true);
  LC.setRow(0,7,B01100000);

  LC.setColumn(1,7,B10010000);
  LC.setRow(1,5,B00100100);
  LC.setRow(1,6,B00010100);
  LC.setRow(1,7,B00001100);
}

// for dot mode - clear the 4 dots only.
void P_CLEAR() {
  LC.setLed(0,5,0,false); // top left
  LC.setLed(0,5,7,false); // top right
  LC.setLed(1,5,0,false); // top left
  LC.setLed(1,5,7,false); // bottom right
}

696  International / Deutsch / Arduino bleibt "hängen" trotz mircosoft-free on: April 13, 2012, 02:40:05 pm
Hallo Leute,
ich habe ein ziemlich komisches Problem. Und zwar habe ich einen QlockTwo Nachbau (schon fertig in der Hardware :-)) aber beim Programm hängts noch. Der Arduino bleibt zwischen durch einfach "stehen".Mal nach 3 Stunden mal nach 8 Stunden mal nach 1 Stunde und das immer an verschieden stellen im Programm. Er reagiert nicht mehr auf Button eingaben. Die Heartbeat LED bleibt auch aus (RTC Implus eines DS1308).
Die "LED-Ausgabe" erfolgt über die SPI-Schnitstelle an die beiden MAX7221. Die Probleme tauchen nur im Setmode=0 auf also der Normalen Zeitausgabe über die LED register. Im Sekundenmodus (setmode=1)bleibt der Ardu am leben.
Ich verwende eine modifizierte MAX7219+7221 Lib aus dem Playground die ich zum echten SPI geändert habe damit ich schneller auf MAX schreiben kann. Wie verhält es sich mit dem RAM wenn aus der Loop einzelnen Funktionen (hier voids also ohne Rückgabewerte) aufruft und es dann irgendwann zuviele werden. Kann man den Ram irgenwie nach dem ablauf einer Loop clearen.
Ich habe es jetzt mit dem org AVR WatchDogTimer gelöst aber das ist nicht die Ursache und ich würde gerne ein Lösung haben.

Hier meine Tabs.

1/3
Main Loop
Code:
/*
 Enhanced and modify by Daniel Herr (adruino Forum "volvodani")
 Copy of the Biegert&Funk QlockTwo reprogramming by volvodani.
 The LEDs Controled by 2*MAX7221 (Daisy Chained)(over SPI).
 I enhanced the LEDControl.h Libary to real SPI for the maxx7221 and renamed LEDControlSPI.h
 based on:
 Copyright 2011 Michael Stebbins
 http://students.washington.edu/mikesteb/projects/Qlock_LED_Clock/Qlock_LED_clock.html
*/

#include <SPI.h>
#include <Wire.h>
#include <LedControlSPI.h>
#include <avr/wdt.h>

#define RTC_ADDRESS 0x68       // I2C Address of RTC
#define LCCS 10                // MAX7221 ChipSelect
#define TASTER 8               // Button Pin
#define RTCIN 2                // SQW Output of RTC connected here
#define TIME 750               // Split time between short and lognpress

LedControl LC=LedControl(LCCS,2);  // Init two MAX 7221 via Real SPI (SPI Interface on Atmega 13,12,

unsigned long ptime;
unsigned long start;
boolean druck=false;
boolean ldruck=true;
boolean longpress=false;
boolean shortpress=false;

boolean tasterlesen=true;
boolean update,last=true;
boolean sec=false;
boolean lsec=false;
boolean save,one=false;

byte setmode,lm=0;                                  // 0=Normal 1=Display Seconds 2=Set minutes 3=Set hours
byte lCase=0;
byte ss,mm,lmm,hh,mmset,lmmset,hhset,lhhset,mm5er,mm5erRest=0;                // Save Variables for time


void setup() {
  wdt_enable(WDTO_2S);
  pinMode(RTCIN,INPUT);                          // SQW Output of RTC connected here
  pinMode(TASTER,INPUT);                         // Taster Eingang
  pinMode(5,OUTPUT);                             // LED Heartbeat of RTC Pulse
  digitalWrite (TASTER,HIGH);                    // internal Pullup
  Wire.begin();                                  // Start I2C Kommunikation
  Wire.beginTransmission(RTC_ADDRESS);           // Beginn Kommunikation auf  Adresse 0x68
  Wire.send(0x07);                               // Pointer auf Control Register 0x07  
  Wire.send(0x10);                               // Controlbyte for RTC to set the sqw Output to 1Hz  
  Wire.endTransmission();                        // Beenden der I2C Kommunitkation
  LC.shutdown(0,false);                          // Disable Standby of the first MAX
  LC.shutdown(1,false);                          // Disable Standby of the first MAX
  LC.setIntensity(0,15);                         // Brightness on max (0-15 on MAX 7221) (0-31 on MAX7219)
  LC.setIntensity(1,15);                         // Brightness on max (0-15 on MAX 7221) (0-31 on MAX7219)
  //Alle_An();                                     // Test All LEDS turnes on
  //delay(1500);                                   // wait 3 seconds
  update=true;
  TimeRead();
}


// Start Main Loop
void loop() {
  wdt_reset();
  /*=>Routine OneButton Control<=*/
  druck=digitalRead(TASTER);
  if (druck==false&&ldruck==true){
    start=millis();
    ldruck=false;
  }
  if (druck==true&&ldruck==false){
    ptime=millis()-start;
    ldruck=true;
  }
  if (ptime>=TIME){
    longpress=true;
    ptime=0;
    //Serialprintln("LONG");  
  }
  if (ptime<TIME&&ptime>=100) {  
    shortpress=true;
    ptime=0;
    //Serialprintln("SHORT");
  }
  /*One Button End*/
  if (longpress==true){
    setmode++;  
    if (setmode==2){
      hhset=hh;
    }
    if (setmode==3){
      ss=0;
      mmset=mm;
    }
    if (setmode==4){
      if(save==true){
        hh=hhset;
        mm=mmset;
        ss=0;
        RTC_Set();
        save=false;
        update=true;
      }
      setmode=0;
    }
    longpress=false;  
    one=false;
  }
  if(shortpress==true){
    if(setmode==2){
      hhset=hhset+1;
      if (hhset>=24){
        hhset=0;
      }
    }
    if (setmode==3){
      mmset=mmset+1;
      if (mmset>=60){
        mmset=0;
      }  
    }
    if (setmode<2){
      if (setmode==1&&lm==true){
        setmode=0;
        update=true;
        lm=false;
      }
      if (setmode==0&&lm==true){  
        setmode=1;
        lm=false;
        update=true;  
      }
    }
    lm=true;  
    shortpress=false;
  }
  sec=digitalRead(RTCIN);
  digitalWrite(5,sec);
  if (sec==true && lsec==false){
    ++ss;                                          // sekunden Zähler aufadieren
    if (ss==60){
      ss=0;
      mm=mm+1;
    }
    if (setmode==1){
      LED_CLEAR();
      print_numbers(ss);
    }
    lsec=true;
  }
  if (setmode==0){
    if(mm!=lmm||update==true){
      TimeRead();
      update=false;
      mm5erRest=mm%5;
      mm5er=mm-mm5erRest;
      update==false;
      if (hh>=13){
        hh=hh-12;
      }
      LED_CLEAR();
      if (mm5erRest==1) P_EINS();
      else if (mm5erRest==2) P_ZWEI();
      else if (mm5erRest==3) P_DREI();
      else if (mm5erRest==4) P_VIER();
      W_ESIST();
      if (mm5er==5||mm5er==25||mm5er==35||mm5er==55){
        M_FUENF();
      }
      if (mm5er==10||mm5er==50){
        M_ZEHN();
      }
      if (mm5er==15||mm5er==45){
        M_VIERTEL();
      }
      if (mm5er==20||mm5er==40){
        M_ZWANZIG();
      }        
      if (mm5er==25||mm5er==30||mm5er==35){
        M_HALB();
      }
      if (mm5er==0){  
        W_UHR();
      }
      if (mm5er==5||mm5er==10||mm5er==15||mm5er==20||mm5er==35){
        W_NACH();
      }
      if (mm5er==25||mm5er==40||mm5er==45||mm5er==50||mm5er==55){
        W_VOR();
      }
      if (mm>=25){
        if (hh==12){
          hh=1;
        }
        else
          hh=hh+1;
      }
      if (hh==1&&mm5er==0) H_EIN();
      else if (hh==1) H_EINS();
      else if (hh==2) H_ZWEI();
      else if (hh==3) H_DREI();
      else if (hh==4) H_VIER();
      else if (hh==5) H_FUENF();
      else if (hh==6) H_SECHS();
      else if (hh==7) H_SIEBEN();
      else if (hh==8) H_ACHT();  
      else if (hh==9) H_NEUN();
      else if (hh==10) H_ZEHN();
      else if (hh==11) H_ELF();
      else if (hh==12||hh==0) H_ZWOELF();

    }
    lmm=mm;
  }
  if (sec==false && lsec==true){
    lsec=false;
  }

  if (setmode==2){
    if (hhset!=lhhset||one==false){
      LED_CLEAR();
      print_numbers(hhset);
      LC.setLed(0,5,0,true); // top left
      LC.setLed(1,5,0,true); // bottom left
      lhhset=hhset;
      one=true;
      save=true;  
    }
  }
  if (setmode==3){
    if (mmset!=lmmset||one==false){
      LED_CLEAR();
      print_numbers(mmset);
      LC.setLed(0,5,7,true); // top right
      LC.setLed(1,5,7,true);// bottom right
      lmmset=mmset;
      one=true;
      save=true;  
    }

  }
}
// End Main Loop


void print_numbers(byte num){   // Funktion zum Dartellen von Dezimalzahlen auf der Matrix
  byte num10;
  byte num1;
  num1=num%10;
  num10=(num-num1)/10;
  switch (num10){
  case 0:
    L_ZERO();
    break;
  case 1:
    L_ONE();
    break;
  case 2:
    L_TWO();
    break;
  case 3:
    L_THREE();
    break;
  case 4:
    L_FOUR();
    break;
  case 5:
    L_FIVE();
    break;
  }
  switch (num1){
  case 0:
    R_ZERO();
    break;
  case 1:
    R_ONE();
    break;
  case 2:
    R_TWO();
    break;
  case 3:
    R_THREE();
    break;
  case 4:
    R_FOUR();
    break;
  case 5:
    R_FIVE();
    break;
  case 6:
    R_SIX();
    break;
  case 7:
    R_SEVEN();
    break;
  case 8:
    R_EIGHT();
    break;
  case 9:
    R_NINE();
    break;
  }
}

697  International / Deutsch / Re: I0 Kommunikation on: April 07, 2012, 04:43:13 pm
SATA 3.0 arbeites mit 3Gbit/s d.h. 3Ghz :-)

Gruß Daniel
698  International / Deutsch / Re: I2C Kommunikation mittels Wire.h funktioniert nicht on: April 07, 2012, 03:21:25 pm
Weil die I2C Schnittstelle des AVR Auf den Pins hängt die bei Arduino Anlaog 4+5 Heissen :-)
Gruß
Daniel
699  International / Deutsch / Re: Temperaturmessung mit PT1000 on: April 05, 2012, 11:59:23 am
Ich denke dass man die schlatung dazu bekommt das sie bis 300°C bekommt z.B. die 250grad bei 4Volt abstimmt dann kan es sehr gut sein das du auf deine 300°C kommst ansonsten hilft das anpassen der Widerstände am letzten OP :-)
700  International / Deutsch / Re: Temperaturmessung mit PT1000 on: April 05, 2012, 12:03:21 am
Am einfachsten nimmst du den hier:
http://www.pollin.de/shop/dt/NTU4OTgxOTk-/Bausaetze_Module/Bausaetze/Bausatz_PT1000_Messwandler.html
Mit dem brauchst du auch nur die 5V die du sowieso hast.

Gruß

Daniel
701  International / Deutsch / Re: Brauche hilfe bei LED Board bauen (LED Matrix, ansteuern, etc) on: April 05, 2012, 12:01:33 am
Es ist genau wie Uwe sagt es gibt da zwei Modis Vorteil des MAX ist das du keine Vorwiderstände etc brauchst. Du stellst mit einem Widerstand (1/10 des Nennstroms) an einem Pin den Strom ein, man steuert einfach den Max an mit den "Bits"bzw LED die Leuchten sollen und um den Rest musst du dich nicht kümmern kein Flackern und so.

Gruß Daniel
702  International / Deutsch / Re: Brauche hilfe bei LED Board bauen (LED Matrix, ansteuern, etc) on: April 04, 2012, 11:23:48 am
Darf ich dir den MAX7221 an Herz legen mit dem kannst du über SPI einfach mit Libary bis zu 8*8 Matrixen ansteuern incl Dimmen sagen wir mal 16 Helligkeitsstufen ansteurn. Du kannst auch animieren etc (wenn du SPI nutzt)
703  International / Deutsch / Re: Mouser Sammelbestellung on: April 02, 2012, 12:41:40 pm
Danke Mad für dein bemühen.
Am Samstag ist das Päckchen angekommen.

Gruß Daniel
704  International / Deutsch / Re: 5V auf Analogem Pin ausgeben! on: April 02, 2012, 11:39:25 am
void setup(){
pinMode (14,OUTPUT); // Ist Analog 1
pinMode (15,OUTPUT);// Ist Analog 2 usw
}

void loop(){
digitalWrite(14,HIGH);  // +5V
digitalWrite(13,LOW);   // 0V}
damit kannst du dan auch die Versorgung z.B. für I2C machen (nimmt halt 2 zusätzliche Pins weg). Hast dann aber über einen 4er Stecker aber alles SDA,SCL +5V,M.

Gruß

Daniel
705  International / Deutsch / Re: Potentiometer digital steuern? on: March 31, 2012, 02:42:07 am
so ich auch noch sogan noch 5€ billiger.
http://www.conrad.de/ce/de/product/442056/?hk=WW4&insert=V0&WT.mc_id=Froog&utm_source=google&utm_medium=deeplink&utm_content=dl_article&utm_campaign=g_shopping

:-)
Pages: 1 ... 45 46 [47] 48 49 ... 76