Temparaturabhäniger portsterueung

OP #1044400
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

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.