Doniak писал(а):тоисть 0<<4 можно было записать и так: 0b00000000000000000000000000001000
Нет, вот так:
1<<4 равно 0b00010000
roboforum.ruТехнический форум по робототехнике. |
|
|
Doniak писал(а):тоисть 0<<4 можно было записать и так: 0b00000000000000000000000000001000
Doniak писал(а):так наглядно видно ЧЕЛОВЕКУ в какой позиции будет 1.
тоисть 0<<4 можно было записать и так: 0b00000000000000000000000000001000
Модератор blindman:Не цитируйте предыдущий пост
Модератор "Digit":Последнее китайское предупреждение!!! Хватит цитировать предыдущее сообщение!
В случае рецидивов - влепим уже далеко не устное предупреждение.
init_serial();
// Loop forever
for (;;) {
if ((AT91C_BASE_PIOA->PIO_PDSR & SW1) == 0) { /* Check if SW1 is pressed */
AT91C_BASE_PIOA->PIO_CODR = LED2; /* Turn On LED1 */
//sprintf('A\n');
sendchar('A');
} else {
AT91C_BASE_PIOA->PIO_SODR = LED2; /* Turn Off LED1 */
}
}
AT91S_USART * pUSART = AT91C_BASE_US0; /* Global Pointer to USART0 */
void init_serial (void) { /* Initialize Serial Interface */
*AT91C_PIOA_PDR = AT91C_PA5_RXD0 | /* Enable RxD0 Pin */
AT91C_PA6_TXD0; /* Enalbe TxD0 Pin */
pUSART->US_CR = AT91C_US_RSTRX | /* Reset Receiver */
AT91C_US_RSTTX | /* Reset Transmitter */
AT91C_US_RXDIS | /* Receiver Disable */
AT91C_US_TXDIS; /* Transmitter Disable */
pUSART->US_MR = AT91C_US_USMODE_NORMAL | /* Normal Mode */
AT91C_US_CLKS_CLOCK | /* Clock = MCK */
AT91C_US_CHRL_8_BITS | /* 8-bit Data */
AT91C_US_PAR_NONE | /* No Parity */
AT91C_US_NBSTOP_1_BIT; /* 1 Stop Bit */
pUSART->US_BRGR = BRD; /* Baud Rate Divisor */
pUSART->US_CR = AT91C_US_RXEN | /* Receiver Enable */
AT91C_US_TXEN; /* Transmitter Enable */
}
int sendchar (int ch) { /* Write character to Serial Port */
if (ch == '\n') { /* Check for CR */
while (!(pUSART->US_CSR & AT91C_US_TXRDY)); /* Wait for Empty Tx Buffer */
pUSART->US_THR = '\r'; /* Output CR */
}
while (!(pUSART->US_CSR & AT91C_US_TXRDY)); /* Wait for Empty Tx Buffer */
return (pUSART->US_THR = ch); /* Transmit Character */
}
#include "lib_AT91SAM7S64.h"
...
AT91F_US0_CfgPIO();
AT91F_US0_CfgPMC();
AT91F_US_EnableIt(US_PORT, AT91C_US_RXBUFF | AT91C_US_TIMEOUT);
AT91F_US_Configure(US_PORT, MCK, AT91C_US_ASYNC_MODE, BR , 0);
//USART_BAUD_RATE
AT91F_US_ResetRx(US_PORT);
AT91F_US_ResetTx(US_PORT);
// Loop forever
for (;;) {
AT91C_BASE_PIOA->PIO_CODR = LED1; // Clear 1 (= Save 0) to PA17
wait();
AT91C_BASE_PIOA->PIO_SODR = LED1; // Save 1 to PA17
wait();
if ((AT91C_BASE_PIOA->PIO_PDSR & SW1) == 0) { /* Check if SW1 is pressed */
AT91C_BASE_PIOA->PIO_CODR = LED2; /* Turn On LED2 */
wait();
//printf('A\n');
while (!AT91F_US_TxReady(US_PORT));
AT91F_US_PutChar(US_PORT,'A');
} else {
AT91C_BASE_PIOA->PIO_SODR = LED2; /* Turn Off LED2 */
wait();
}
if ((AT91C_BASE_PIOA->PIO_PDSR & SW2) == 0) { /* Check if SW2 is pressed */
if (AT91F_US_RxReady(US_PORT))
{ c = AT91F_US_GetChar(US_PORT);}
else {c = 'F';}
while (!AT91F_US_TxReady(US_PORT));
AT91F_US_PutChar(US_PORT,c);
AT91C_BASE_PIOA->PIO_CODR = LED2; /* Turn On LED2 */
wait();
} else {
AT91C_BASE_PIOA->PIO_SODR = LED2; /* Turn Off LED2 */
wait();
}
}
while (!AT91F_US_RxReady(US_PORT));
c = AT91F_US_GetChar(US_PORT);}
while (!AT91F_US_TxReady(US_PORT));
AT91F_US_PutChar(US_PORT,c);
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1