Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <avr/io.h>
- #include <util/delay.h>
- enum
- {
- HIGH = 1,
- LOW = 0,
- };
- enum
- {
- OUTPUT = 1,
- INPUT = 0,
- };
- void pinMode(int pin, int mode);
- void digitalWrite(int pin, int mode);
- int digitalRead(int pin);
- int main (void)
- {
- pinMode(13, OUTPUT);
- while(1)
- {
- digitalWrite(13, HIGH);
- _delay_ms(250);
- digitalWrite(13, LOW);
- _delay_ms(250);
- }
- return 0;
- }
- void pinMode(int pin, int mode)
- {
- if( (pin >= 0) && (pin < 8) ) //PORTD
- {
- mode ? (DDRD |= _BV(pin)) : (DDRD &= ~_BV(pin));
- }
- else if( (pin > 7) && (pin < 14) ) //PORTB
- {
- pin -= 8;
- mode ? (DDRB |= _BV(pin)) : (DDRB &= ~_BV(pin));
- }
- }
- void digitalWrite(int pin, int mode)
- {
- if( (pin >= 0) && (pin < 8) ) //PORTD
- {
- mode ? (PORTD |= _BV(pin)) : (PORTD &= ~_BV(pin));
- }
- else if( (pin > 7) && (pin < 14) ) //PORTB
- {
- pin -= 8;
- mode ? (PORTB |= _BV(pin)) : (PORTB &= ~_BV(pin));
- }
- }
- int digitalRead(int pin)
- {
- if( (pin >= 0) && (pin < 8) ) //PIND
- {
- return (PIND & _BV(pin));
- }
- else if( (pin > 7) && (pin < 14) ) //PINB
- {
- return (PINB & _BV(pin - 8));
- }
- return LOW;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement