Dag mensen,
Sinds enkele weken ben ik bezig met het ontvangen
en verzenden van bits. Wat ik nu wil doen is het
volgende:
om de +/- 10msec wordt er een bit (1 of 0) naar de RX-pin
van mijn pic16f628 gestuurd. ik wil graag deze bits
opslaan in een char. dus elke keer als er een bit
ontvangen wordt moet deze opgeslagen worden in de char.
op het einde wil ik deze char kunnen uitlezen. Ik zat
te denken aan logical shift left.. maar ik weet niet precies hoe dat moet
wie kan mij hiermee helpen?
alvast bedankt,
MeX
taal = C
het zal iets in de trend zijn van:
char = (bit << 1);
dus elke keer wordt de bit 1 naar links geschoven
greetz
MeX
ik ken ook wel een beetje assembly.
ik moet alleen ff het principe begrijpen.
hoe zorg ik ervoor dat de ontvangen bit steeds 1 naar
links schuift zonder dat de hele inhoud van de char verdwijnt?
MeX out
k.p.meinesz
Een schizofreen is nooit alleen!
met een AND functie?
dus haal bit op en schrijf deze weg naar een register
vervolgens doe Je een And met een tweede register(char)
resultaat opslaan in zelfde register
dan een Rotate Left volgende bit ophalen
counter mee laten lopen als de counter 8 is is char compleet complete char wegschrijven naar een 3e register en tweede register resetten zoiets moet het zijn
sven
pointers don't kill programs, programmers kill programs
Op 10 februari 2003 21:49:42 schreef MeX:
ik ken ook wel een beetje assembly.ik moet alleen ff het principe begrijpen.
hoe zorg ik ervoor dat de ontvangen bit steeds 1 naar
links schuift zonder dat de hele inhoud van de char verdwijnt?MeX out
je leest die bit in
plaats die in een register , op de lsb
"rotate left" (is bij 8051 een commando, pic ken ik ni)
verhoog een teller
indien je teller = 8 heb je een bit
Hardstikke bedankt!
het werkt..
bits=1;
save = ( save | bits );
save = ( save << 1 );
bit wordt opgehaald, in save gezet en daarna wordt
alles 1 naar links geschoven!
mzzl
MeX
k.p.meinesz
Een schizofreen is nooit alleen!
Op 10 februari 2003 22:06:39 schreef MeX:
Hardstikke bedankt!
het werkt..bits=1;
save = ( save | bits );
save = ( save << 1 );bit wordt opgehaald, in save gezet en daarna wordt
alles 1 naar links geschoven!mzzl
MeX
dat heb je snel geprobeerd
suc6 verder