#include <avr/io.h>
#include <util/delay.h>
#include <stdlib.h>
int IsEven(int x){
return (x & 1) == 0;
}
void delay_us(unsigned int us)
{
for(unsigned int i=0;i<us;i++)
{
_delay_ms(1);
}
}
int main(void)
{
srand(32000);
uint8_t t = 200 + rand() % 500;
uint8_t i = 0 + rand() % 10;
DDRB = 0b00000011;
delay_us(t);
if (IsEven(i)==0)
PORTB = 0b00000001;
else
PORTB=0b00000010;
while(1)
{
}
}
смысл в том что генерируется случайное число и проверяется на четность, после уже на нужный порт подается 1. так же генерируется случайная задержка. но при запуске горит один и тот же диод и время задержки одинаковое, я так понимаю рандом не работает. может есть ошибка в коде? РАНД
Еще вопрос, на форуме говорили сделать лучше светодиод, что бы порт был на вход нагрузка меньше, как это осуществить?
Раздел: AVR