[elektro] AVR GCC kezdő kérdés
Stolmár Tamás
knight at borsodi.qualitis.hu
Mon Jan 31 09:36:08 CET 2011
2011.01.31. 8:27 keltezéssel, Norbert Berberovics írta:
A "rol"-ról:
http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=65038
A teljes algoritmusod sejtésem szerint valami soros kommunikáció.
Én ezt írtam SPI-hez:
Lehet hogy még szebben / hatékonyabban meg lehetne írni, de ez stabilan
működik.
A dout_0, dout_1, clk_up, clk_down makrók csak a megfelelő portlábat
tologatják.
void spi_write_byte(uint8_t *input)
{
register uint8_t data = *input;
register uint8_t i;
for (i=0; i<8; i++)
{
if (data & 0x80)
{
dout_1();
}
else
{
dout_0();
}
delayUS(SPI_DELAY_US);
clk_up();
delayUS(SPI_DELAY_US);
clk_down();
data <<= 1; //bit shift
}
}
void spi_read_byte(uint8_t *input)
{
register uint8_t data = 0;
register uint8_t i;
for (i=0; i<8; i++)
{
delayUS(SPI_DELAY_US);
clk_up();
delayUS(SPI_DELAY_US);
data <<= 1;
if (read_din())
{
data |= 0x01;
}
clk_down();
}
*input = data;
}
> Sziasztok,
>
> AVR GCC vel ismerkedek egy pár hete, sehol nem találom, hogy hogyan lehet
> legegyszerűbben megoldani ezt C-ben, amivel asm-ben semmi gondom nem volt:
>
> belep:
> rol r18
> brcs beir_1
> rjmp beir_0
>
> Előre is nagyon köszi.
> -----------------------------------------
> elektro[-flame|-etc]
>
More information about the Elektro
mailing list