From e22453c44e0b88f47cd16f6dd1a769bd4ff90203 Mon Sep 17 00:00:00 2001 From: Max Christian Pohle Date: Sat, 20 May 2017 19:08:44 +0200 Subject: First prototype version: Just shift register usage. --- Makefile | 6 +++ main.c | 164 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 170 insertions(+) create mode 100644 Makefile create mode 100644 main.c diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..e8d2720 --- /dev/null +++ b/Makefile @@ -0,0 +1,6 @@ +all: + avr-gcc -Wall -mmcu=attiny85 -O3 -o main.elf main.c + avr-objcopy -j .text -j .data -O ihex main.elf main.hex + +program: all + avrdude -B100 -p t85 -c avrisp2 -P usb -U flash:w:main.hex diff --git a/main.c b/main.c new file mode 100644 index 0000000..7906126 --- /dev/null +++ b/main.c @@ -0,0 +1,164 @@ +#include // (1) +#include + +#ifndef F_CPU +#warning "F_CPU war noch nicht definiert, wird nun mit 3686400 definiert" +// #define F_CPU 3686400UL /* Quarz mit 3.6864 Mhz */ +#define F_CPU 1000000UL /* Quarz mit 3.6864 Mhz */ +#endif + +#include +#include + + +// set bit +static inline void BIT_SET(volatile uint8_t *target, uint8_t bit) __attribute__((always_inline)); +static inline void BIT_SET(volatile uint8_t *target, uint8_t bit){ + *target |= (1<SPI Blocksende Routine mit optimierungen auf Speed. +// * \param buffer Zeiger auf den Puffer der gesendet werden soll. +// * \param Datalenght Anzahl der Bytes die gesedet werden soll. +// */ +///* -----------------------------------------------------------------------------------------------------------*/ +//void SPI_FastMem2Write( unsigned char * buffer, unsigned int Datalenght ) +//{ +// unsigned int Counter = 0; +// unsigned char data; +// +// // erten Wert senden +// SPDR = buffer[ Counter++ ]; +// while( Counter < Datalenght ) +// { +// // Wert schon mal in Register holen, schneller da der Wert jetzt in einem Register steht und nicht mehr aus dem RAM geholt werden muss +// // nachdem das senden des vorherigen Wertes fertig ist, +// data = buffer[ Counter ]; +// // warten auf fertig +// while(!(SPSR & (1<>i); + + /* + + char data = 1; + for(; data<128; data++) + { + // clear register (reset) + print_data(data); + _delay_ms(1000); + } + + */ + + // spi_transfer(0x10101010b); + + + } + return 0; +} -- cgit v1.2.3