PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : bitwait Funktion auf C..!



RIFMAN
11.04.2007, 11:35
Hallo,
ich brauche die bitwait-Funktion von BASIC auf C-Sprache umgesetzt.
kann jemand weiterhelfen?

Razer
11.04.2007, 12:44
Ich kenn den Befehl BITWAIT nicht. Ist Warten bis Bitt gesetzt ist oder gelöscht?

while(reg & (1 << bit)) //Mach solange wie bit gesetzt
{
}

while(!(reg & (1 << bit))) //Mach solage wie bit gelöscht
{
}

RIFMAN
12.04.2007, 09:12
Danke!
genau, das wasich gesucht habe.

jar
12.04.2007, 14:01
Danke!
genau, das wasich gesucht habe.

gibts auch als macro

** \def loop_until_bit_is_set
\ingroup avr_sfr

\code #include <avr/io.h>\endcode

Wait until bit \c bit in IO register \c sfr is set. */

#define loop_until_bit_is_set(sfr, bit) do { } while (bit_is_clear(sfr, bit))

/** \def loop_until_bit_is_clear
\ingroup avr_sfr

\code #include <avr/io.h>\endcode

Wait until bit \c bit in IO register \c sfr is clear. */

#define loop_until_bit_is_clear(sfr, bit) do { } while (bit_is_set(sfr, bit))

/*@}*/

in:

#include <avr/sfr_defs.h>

RIFMAN
12.04.2007, 14:21
Danke jar,
aber ich habe keinen Überblick in deinem Code, könntest du ihn mal erklären?

Hubert.G
12.04.2007, 14:56
Probiers mal hier, ich denke das ist verständlicher:
www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Lesen_eines_I.2FO-Registers

jar
12.04.2007, 15:02
Danke jar,
aber ich habe keinen Überblick in deinem Code, könntest du ihn mal erklären?

is nich mein code, sonder ein simples define (es hilft wenn man unwesendliches wie Kommentare überliest, äh ausblendet ),
eigendlich selbsterklärend, aber auch danke an Hubert, der hat ja den guten Link zur Erklärung gesetzt

oder siehe hier:

https://www.roboternetz.de/phpBB2/viewtopic.php?p=271894#271894