fdevopen funktioniert nicht immer

Gast #6027897
Lesenswert?

Guten Morgen,
ich habe eine Frage, warum funktioniert fdevopennicht immer?
Ich habe ein Projekt in dem folgendes ohne Probleme funktioniert.
1
//sprintf (bufferr, "IN=%02x %d %d \n\r", AuxInput,Data_Array_Messwert[0],Data_Array_Messwert[1]);
2
      //uputs_(bufferr);

jedoch

vor der main loop
1
fdevopen(uputs_, NULL);

dann in im Programm
1
  //uputs_("Hallo\n\r");

das nicht mehr.

Verwende das Atmelstudio 7

Danke
#6028730
Lesenswert?

Pure schrieb:
> Dirk B. schrieb:
>> Der Code ist auch auskommentiert.
>
> Ja beim Test war es einkommentiert.

Dann zeig doch bitte den Code, der nicht wie erwartet funktioniert hat 
und nicht irgendwas anderes. Und mit deinem uputs_("Hallo\n\r") benutzt 
du das Device auch gar nicht. Also hat das Problem nichts mit dem zu 
tun, sondern mit uputs_() selbst.
Beitrag #6028964 wurde von einem Moderator gelöscht.
Gast #6028967
Lesenswert?

Guten Abend
Diese Kombi funktioniert


int uart1_putc(  char data)
{
    unsigned char tmphead;


    tmphead  = (UART1_TxHead + 1) & UART_TX_BUFFER_MASK;

    while ( tmphead == UART1_TxTail ){
        ;/* wait for free space in buffer */
    }

    UART1_TxBuf[tmphead] = data;
    UART1_TxHead = tmphead;

    /* enable UDRE interrupt */
    UART1_CONTROL    |= _BV(UART1_UDRIE);
  return (1);
}/* uart1_putc */

fdevopen(uart1_putc, NULL);


Diese Kombi funktioniert nicht

void uputs_( uint8_t *s )
{
  while( *s )
    s_sputchar( *s++ );
}
fdevopen(uputs_, NULL);


Kann mir jemand den Grund erklären?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren