[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