// ATtiny85 Blink!
// Entrada e Saída – Manipulando Registradores
#include <avr/io.h>
#include <util/delay.h>
#include <SoftwareSerial.h>
#include "debug.h"
#define F_CPU 1000000UL
int main(void)
{
// Nota: PB0 e PB3 estão sendo manipulados pela comunicação serial
mySerial.begin(9600);
_delay_ms(500); // Aguarda 1/2 segundo para estabilizar a serial
DDRB |= (1 << PB1); // Configura Pino PB1 como saída (Pino do LED)
uint8_t ex = 1; // Alterna o exemplo (1-3)
while (1)
{
switch (ex) {
case 1: // Exemplo 1
PINB = (1 << PINB1); // Alterna o LED vermelho
printBin(PINB); // Envia o valor binário para o monitor serial
_delay_ms(1000); // Aguarda 1 segundo
break;
case 2: // Exemplo 2
PORTB |= (1 << PB1); // Liga o LED vermelho
printBin(PORTB); // Envia o valor binário para o monitor serial
_delay_ms(500); // Aguarda 1/2 segundos
PORTB &= ~(1 << PB1); // Desliga o LED vermelho
printBin(PORTB);
_delay_ms(500); // Aguarda 1/2 segundos
break;
case 3: // Exemplo 3
PORTB ^= (1 << PB1); // Alterna o LED vermelho
printBin(PORTB); // Envia o valor binário para o monitor serial
_delay_ms(250); // Aguarda 1/4 segundos
break;
}
}
return (0);
}