- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 14

Thema: LM75 Auswerten und Temperatur über terminal ausgeben?

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    21.01.2012
    Beiträge
    15
    Beim Auslesen der Temperatur des LM75 hängt sich der Prozessor auf, wenn ein Signal über USART reinkommt, versteh das nicht wirklich.

    Usart funktioniert Problemlos wenn ich die Zeile auskommentiere:

    // temperatur = TWI_empf(ADRESSE_R);
    wenn ich sie drinlasse, hängt sich der Prozessor ab und zu auf, wenn über USART etwas empfangen wird während diesen Befehls.

    Ist sehr strange, habt ihr da eine Idee?

    Programm:
    #define F_CPU 16000000UL //Takt 16MHz

    #include <avr/io.h>
    #include <avr/interrupt.h>
    #include <util/delay.h>
    #include <util/twi.h>
    #include "i2c.h"

    /* Programm Libs */
    #include "defines.h"


    volatile uint8_t IRFlag;
    volatile uint8_t IR_zaehl=0;
    volatile uint8_t RxData;

    int main(void)
    {
    /* TIMER INIT */
    SETBIT(TCCR0,CS00);// Prescaler von 1024 16MHz/1024 = 15,6kHz = 64us
    SETBIT(TCCR0,CS02);
    TCNT0 = 255; // Reload Wert 0-255 250*4us*8 = 8ms = 125Hz
    SETBIT(TIMSK,TOIE0); // Timer IR Aktivieren

    // DDRD=0xFB; //D0-D1 & D3-D7 as Output
    // SETBIT(MCUCR,ISC01); //Fallende Flanke
    // SETBIT(GICR,INT0); //Taster IR Aktivieren

    sei(); //Globale IRs aktivieren

    /* Lokale Variablen: */


    /* Ports as Outputs: */
    DDRA=0xFF;
    DDRB=0xFF;
    DDRC=0xFF;


    uart_init();
    //SETBIT(PORTB,1);

    SETBIT(PORTA,3);//VCC für Temp

    TWI_init(FAKTOR, TEILER);
    unsigned char temperatur=0;
    unsigned char komma=0;
    char test=0;
    while (1)
    {

    if(IRFlag == 1 && !((UCSRA & (1<<RXC))))
    {
    IRFlag=0;
    SETBIT(PORTB,1);//LED
    // temperatur = TWI_empf(ADRESSE_R);
    komma=dat2;
    CLEARBIT(PORTB,1);//LED
    }

    //if ( (UCSRA & (1<<RXC)) ) //Zeichen Empfangen?
    else
    {
    RxData=uart_getc();
    if(RxData=='R') //Relais Einschalten
    {
    // SETBIT(PORTB,1);//LED
    SETBIT(PORTA,6);//Relais
    uart_putc('R');
    }
    if(RxData=='S') //Relais Ausschalten
    {
    // CLEARBIT(PORTB,1);//LED
    CLEARBIT(PORTA,6);//Relais
    uart_putc('S');
    }
    if(RxData=='T') //Relais Ausschalten
    {
    if(temperatur)
    uart_putc(temperatur);
    }
    if(RxData=='U') //Relais Ausschalten
    {
    if(komma)
    uart_putc(komma);
    }
    RxData=0;
    }

    _delay_ms(20);

    /*
    uart_putc('f');
    _delay_ms(1000);

    uart_putc('A');
    _delay_ms(1000);
    uart_putc(uart_getc());*/
    }

    }




    /* TIMER 0 IR HANDLER */
    ISR( TIMER0_OVF_vect ) //Wenn Timer IR kommt Led ausschalten + IR Flag auf 1
    {
    IR_zaehl++;
    if(IR_zaehl==160)
    {
    IRFlag=1;
    IR_zaehl=0;
    }
    }


    /* Taster 0 IR HANDLER */
    ISR( INT0_vect )
    {

    }
    Geändert von kremsy (02.06.2012 um 20:03 Uhr)

Ähnliche Themen

  1. Antworten: 75
    Letzter Beitrag: 12.12.2010, 21:34
  2. Antworten: 44
    Letzter Beitrag: 12.12.2010, 13:55
  3. Antworten: 13
    Letzter Beitrag: 21.11.2010, 18:41
  4. Daten von RN-Control über USB-ISP auf Terminal ausgeben
    Von ensacom im Forum Schaltungen und Boards der Projektseite Mikrocontroller-Elektronik.de
    Antworten: 3
    Letzter Beitrag: 24.01.2009, 20:36
  5. Beispielprogramm: Mit RN-Control und LM75 Temperatur messen
    Von Frank im Forum Bauanleitungen, Schaltungen & Software nach RoboterNetz-Standard
    Antworten: 20
    Letzter Beitrag: 11.04.2007, 15:11

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress