www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Temparaturabhäniger portsterueung


Autor: Benjamin Blade (blade138)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
#define  F_CPU 3686400
#include <util/delay.h>
#include <avr/io.h>
#include "twimaster.h"
#include "twimaster.c"
#include "lcd.c"


#define TWI_ADR    0x00
#define _TWINT    0b10000000
#define _TWEN    0b00000100
#define LM75_ADR  0b10010000
#define LM75_CONFIG  0b00000001
#define LM75_HYST  0b00000010
#define LM75_SET  0b00000011
#define LM75_TEMP  0b00000000



int main(void)
 {
   DDRC = 0x1F;

   unsigned char ret1,ret2;
  unsigned char t[4];
    ;
    wait_ms(200);
  lcd_init();
  i2c_init();
                              // initialize I2C library


     // init LM75
  i2c_start_wait(LM75_ADR+I2C_WRITE);
  i2c_write(LM75_CONFIG);          // Config Register auswählen
  i2c_write(0);
  i2c_write(0);
   i2c_stop();

  i2c_start_wait(LM75_ADR+I2C_WRITE);
  i2c_write(LM75_HYST);          // Config Register auswählen
  i2c_write(19);
  i2c_write(0);
   i2c_stop();

  i2c_start_wait(LM75_ADR+I2C_WRITE);
  i2c_write(LM75_SET);          // Config Register auswählen
  i2c_write(21);
  i2c_write(0);
   i2c_stop();



     while(1)
   {

   lcd_write1("Temparatur");
   wait_ms(100);
   lcd_goto(2, 1);
   wait_ms(100);

   i2c_start_wait(LM75_ADR+I2C_WRITE);     // set device address and 
write mode
        i2c_write(LM75_TEMP);
   i2c_rep_start(LM75_ADR+I2C_READ);       // set device address and 
read mode
   ret1 = i2c_readAck();                    // read first byte from LM75
   ret2 = i2c_readNak();                    // read second byte from 
LM75
   i2c_stop();

   sprintf(t, "%d", ret1);
   lcd_write1(t);
   wait_ms(100);
   lcd_write1(",");
   wait_ms(100);
   ret2 &= 0x80;
   if(ret2 == 0b00000000)
    lcd_write1("0");
   else
     lcd_write1("5");
   wait_ms(100);

   wait_ms(200);
   wait_ms(200);
   wait_ms(200);
   wait_ms(200);
   wait_ms(200);
   wait_ms(200);
   wait_ms(200);
   wait_ms(200);
   wait_ms(200);
   lcd_home();
   }
}

hallo ich bin noch ma undzwar ich nutze den oben genannten code. und 
benutze das Avr board 2 und nen lm 75 und wollte wohl das ich bei 
bestimmten temparaturen ports anschalten kann und ich hab gelesen das 
ich da was umwandeln muss. weiß nur nich was und wie. wollte dann einach 
über if( temparatur über zb 20) dann halt Port.... geht das so einfach?

mfg Blade


kann ich da nich einfach If(t >= 20) dann tu .....??

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.