Forum: Mikrocontroller und Digitale Elektronik Temparaturabhäniger portsterueung


von Benjamin B. (blade138)


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 .....??

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.