organized tests
This commit is contained in:
parent
65eb4d6ce2
commit
bc8503b73e
7
avr_tests/Makefile
Normal file
7
avr_tests/Makefile
Normal file
|
@ -0,0 +1,7 @@
|
|||
tests= usart_test.elf io_test.elf
|
||||
|
||||
all: $(tests)
|
||||
|
||||
%.elf:%.c
|
||||
avr-gcc $< -mmcu=atmega168 -O -o $@
|
||||
avrdude -p m168 -c avrispmkii -U flash:w:$@:a
|
19
avr_tests/io_test.c
Normal file
19
avr_tests/io_test.c
Normal file
|
@ -0,0 +1,19 @@
|
|||
#include <avr/io.h>
|
||||
#define F_CPU 18000000UL
|
||||
#include <util/delay.h>
|
||||
|
||||
int main(void)
|
||||
{
|
||||
// CLKPR |= _BV(CLKPCE);
|
||||
// CLKPR &= ~(_BV(CLKPS0)
|
||||
// | _BV(CLKPS1)
|
||||
// | _BV(CLKPS2)
|
||||
// | _BV(CLKPS3));
|
||||
DDRC |= _BV(PC5);
|
||||
while(1)
|
||||
{
|
||||
PORTC ^= _BV(PC5);
|
||||
_delay_ms(4000);
|
||||
}
|
||||
return 0;
|
||||
}
|
71
avr_tests/usart_test.c
Normal file
71
avr_tests/usart_test.c
Normal file
|
@ -0,0 +1,71 @@
|
|||
#include <avr/io.h>
|
||||
#include <stdlib.h>
|
||||
#include <avr/interrupt.h>
|
||||
|
||||
//#define USART_U2X_EN
|
||||
|
||||
#define F_CPU 20000000UL
|
||||
#include <util/delay.h>
|
||||
#define USART_BAUD 2400
|
||||
#define UBRR_VALUE_DS 520
|
||||
|
||||
#ifndef USART_U2X_EN
|
||||
#define UBRR_VALUE (F_CPU/16/USART_BAUD-1)
|
||||
#else
|
||||
#define UBRR_VALUE (F_CPU/8/USART_BAUD-1)
|
||||
#endif
|
||||
|
||||
#if !(UBRR_VALUE == UBRR_VALUE_DS)
|
||||
#warning "Calculated UBRR value differs from the value given in the datasheet: "
|
||||
#define UBRR_VALUE UBRR_VALUE_DS
|
||||
#endif
|
||||
|
||||
int cnt;
|
||||
|
||||
void
|
||||
usart_init(void)
|
||||
{
|
||||
UBRR0H = (unsigned char)(UBRR_VALUE >> 8);
|
||||
UBRR0L = (unsigned char)UBRR_VALUE;
|
||||
#ifdef USART_U2X_EN
|
||||
UCSR0A |= _BV(U2X0);
|
||||
#endif
|
||||
UCSR0B = _BV(TXEN0) | _BV(TXCIE0);
|
||||
UCSR0C = _BV(UCSZ00) | _BV(UCSZ01);
|
||||
//UCSR0C = _BV(UCSZ00) | _BV(UCSZ01);
|
||||
cnt = 0;
|
||||
sei();
|
||||
}
|
||||
|
||||
|
||||
ISR(USART_TX_vect)
|
||||
{
|
||||
if(!cnt)
|
||||
{
|
||||
UDR0 = '\n';
|
||||
cnt++;
|
||||
}
|
||||
else
|
||||
{
|
||||
cnt = (cnt + 1) % 10;
|
||||
UDR0 = '0' + cnt;
|
||||
}
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
DDRC |= _BV(PC5);
|
||||
usart_init();
|
||||
while(!(UCSR0A & _BV(UDRE0)));
|
||||
UDR0 = '0';
|
||||
while(1)
|
||||
{
|
||||
PORTC ^= _BV(PC5);
|
||||
_delay_ms(500);
|
||||
PORTC ^= _BV(PC5);
|
||||
_delay_ms(1000);
|
||||
PORTC ^= _BV(PC5);
|
||||
_delay_ms(500);
|
||||
}
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user