Код: Выделить всё
PORTE=SPI_receive()Код: Выделить всё
PORTE=SPI_receive()Код: Выделить всё
#include <spi.h>
unsigned char SPI_receive(void)
{
unsigned char data;
while(!(SPSR & (1<<SPIF)));
data = SPDR;
return data;
}
void main(void)
{
PORTB=0x00;
DDRB=0x08;
PORTC=0x00;
DDRC=0x00;
PORTE=0x00;
DDRE=0xFF;
PORTF=0x00;
DDRF=0x01;
SPCR=0x40;
SPSR=0x00;
// PORTF= SPI_receive();
while (1)
{
while(!(SPSR & (1<<SPIF)))
{
PORTF= PINC & 1;
//PORTF= (~PINC) & 1;// инверсное дейсвие
}
PORTE = SPDR;
};Код: Выделить всё
#include <avr/io.h> // Хотим использовать порты ввода/вывода
#include <util/delay.h> // Хотим использовать функции задержек
int main()
{
DDRB = 0;
DDRD = 255;
PORTB = 255;
PORTD = 0;
while(1)
{
if (PINB0==1)
{
PORTD=(0<<0);
_delay_ms(1000);
PORTD=(1<<0);
_delay_ms(1000);
}
else
{
PORTD=0;
}
}
}
Код: Выделить всё
int main()
{
DDRB = 0;//здесь установили 0
DDRD = 255;
PORTB = 255;
PORTD = 0;
while(1)
{
if (PINB0==1)
{
PORTD=(0<<0);//здесь установили 0
_delay_ms(1000);
PORTD=(1<<0);//здесь установили 0
_delay_ms(1000);
}
else
{
PORTD=0;//здесь установили 0
}
}
}Код: Выделить всё
{
PORTD=(0<<0);//здесь установили 0
_delay_ms(1000);
PORTD=(1<<0);//здесь установили 1 (в коментарии ошибка была.)
_delay_ms(1000);
}
Код: Выделить всё
if (PINB0 == 0) // если кнопка нажата и на ноге PINB0 - лог ноль
{
PORTD...... // делаем на пинах 0,3,6 - единицу а на остальных пинах ноль
}Код: Выделить всё
PORTD= 0b01001001;Код: Выделить всё
PORTD= 0x49;а вот это читали?ukr823f писал(а):мне вот в этом выражении нужно выставить пины 0,3,6 в 1, а остальные в ноль
Просто уже и в интернете сколько страниц пересмотрел, везде попадаются то примеры под CodeVision, то вообще ничего непонятно.
ukr823f писал(а):для получения статуса кнопки может нужно использовать битовую операцию (которые я вообще немогу понять....) (REGISTR & (1<<N))
Код: Выделить всё
#define PINB0 0
if (0==1)
или
if (0==0)