Hi,
stehe jetzt echt auf dem Schlauch, trotz include von stdint.h kennt der
Compiler unit16_t nicht.
Das ist der Code
#include <avr/io.h>
#ifndef F_CPU
/* Definiere F_CPU, wenn F_CPU nicht bereits vorher definiert
(z.B. durch Übergabe als Parameter zum Compiler innerhalb
des Makefiles). Zusätzlich Ausgabe einer Warnung, die auf die
"nachträgliche" Definition hinweist */
#warning "F_CPU war noch nicht definiert, wird nun mit 800000 definiert"
#define F_CPU 8000000UL /* Quarz mit 8 Mhz */
#endif
#include <util/delay.h>
#include <stdint.h>
#include <avr/interrupt.h>
#include <avr/io.h>
#define POWERON PB4
#define MOSI PB0
#define SCL PB2
#define LOAD PB1
int main (void)
{
PORTB |= (1 << POWERON);
DDRB = 0xff;/* all out*/
uint16_t toSend = 0x0FFF;
unit16_t mask = 1 << 15;
for(int i = 0; i<16; i++)
{
if (toSend & mask)
{
PORTB |= (1<<MOSI);
}
else
{
PORTB &= ~(1<<MOSI);
}
_delay_us(10);
PORTB |= (1<<SCL);
_delay_us(10);
PORTB &= ~(1<<SCL);
}
PORTB |= (1<<LOAD);
_delay_us(10);
PORTB &= ~(1<LOAD);
//PORTB &= ~(1 << POWERON);
do{} while(1);
}
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.