2016-07-10 2 views
0

Ich, ich programmiere eine attiny85. Zuerst habe ich es mit meinem Raspberry Pi gemacht und es war in Ordnung, ein Programm zu machen, das die LED, die mit meiner attiny85 verbunden ist, einschaltet/ausschaltet. Aber es gibt nur ein Fex-Tutorial im Netz zu programmieren Attiny mit Himbeer-Pi, aber es gibt viele mit Arduino. Also entschied ich mich, das Arduino-IDE zu verwenden, dann die .hex-Datei zu holen und sie mit meinem Himbeer-Pi auf die Attiny hochzuladen. (Ich habe kein Arduino Board). Mehr über das Arduino Ide verfügt über viele Bibliotheken, die Ihr Leben einfacher machen. Aber wenn ich es hochlade, ist alles in Ordnung, aber das Programm scheint nicht zu funktionieren. Ich weiß nicht wirklich, ob es möglich ist, die .hex-Datei mit Arduino zu erstellen und mit Raspberry Pi zu pushen. Ps: Leider Englisch ist nicht meine Muttersprache Hier ist das erste Programm i mit Himbeer gemacht und wer arbeitet:Hochladen der .hex Datei von ArduinoIDe mit einem Raspberry Pi zu einem attiny85

#define F_CPU 1000000L 
#include <avr/io.h> 
#include <util/delay.h> 
int main(void) 
{ 

    PORTB = 0xFF; // LED's are off 

    for (;;) { 

    DDRB = 1<<DDB4 | 1<<DDB1 | 1<<DDB0 | 1<<DDB3; 
    //PORTB ^= 0xFF; // invert all the pins 
    _delay_ms(1000); // wait some time 
    DDRB = 0<<DDB4 | 0<<DDB1 | 0<<DDB0 | 0<<DDB3; 
    _delay_ms(1000); // wait some time 

    } 
    return 0; 
} 

Und dann das Programm i mit Arduino gemacht (ich weiß, es ist nur auf 2 geführt drehen soll, aber keine sind auf):

void setup() { 

pinMode(1, OUTPUT); 
pinMode(2, OUTPUT); 

} 


void loop() { 
    digitalWrite(1, HIGH); 
    digitalWrite(2, HIGH); 
    delay(1000);    // wait for a second 
    digitalWrite(1, LOW); 
    digitalWrite(2, LOW); // turn the LED off by making the voltage LOW 
    delay(1000);    // wait for a second 
} 

Und es schieben i diesen Befehl verwenden (für beide Programm, aber für das erste es i kompilieren erste the.hex) zu erzeugen:

sudo gpio -g mode 22 out 
sudo gpio -g write 22 0 
sudo /usr/local/bin/avrdude -p t85 -P /dev/spidev0.0 -c linuxspi -b 10000 -U flash:w:blinky.hex 

So ist es normal? Ist das ein Code-Problem oder kann ich nicht tun, was ich versuche? ich wirklich Arduino IDE verwenden möchten, weil ich meine ATtiny wollen/rasbperry durch serielle gpio

+0

:) ich denke, Die Baudrate von 10000 ist nicht korrekt. Versuchen Sie die typischen Baudraten wie 9600 oder 115200. – ckruczek

+0

Ich versuche für den ersten Code und es funktioniert auch, aber für den IDE Arduino Code, ich arbeite nicht:/ – Lowteast

Antwort

0

Ok, es ist Arbeit! : D In der Tat zu kompilieren/drücken Sie die blinky.c Ich benutzte ein Makefile (ich fand es auf einem Tuto). Ich nehme So, jetzt nur die .hex und verwenden „make install“, wie ich mit dem ersten blinky tat, aber ohne die Zusammenstellung als ich die .hex und nicht die .c bekommen Also hier die Make-Datei :)

MCU=attiny85 
AVRDUDEMCU=t85 
CC=/usr/bin/avr-gcc 
CFLAGS=-g -Os -Wall -mcall-prologues -mmcu=$(MCU) 
OBJ2HEX=/usr/bin/avr-objcopy 
AVRDUDE=/usr/local/bin/avrdude 
TARGET=arduiblinky 
# target = name of your file you want upload on the attiny 

all : 
# no need this part if you have the .hex :D 
    #$(CC) $(CFLAGS) $(TARGET).c -o $(TARGET) 
    #$(OBJ2HEX) -R .eeprom -O ihex $(TARGET) $(TARGET).hex 
    #rm -f $(TARGET) 

install : all 
    sudo gpio -g mode 22 out 
    sudo gpio -g write 22 0 
    sudo $(AVRDUDE) -p $(AVRDUDEMCU) -P /dev/spidev0.0 -c linuxspi -b 9600 - U flash:w:$(TARGET).hex 
    sudo gpio -g write 22 1 

noreset : all 
    sudo $(AVRDUDE) -p $(AVRDUDEMCU) -P /dev/spidev0.0 -c linuxspi -b 10000 -U flash:w:$(TARGET).hex 

fuse : 
    sudo gpio -g mode 22 out 
    sudo gpio -g write 22 0 
    sudo $(AVRDUDE) -p $(AVRDUDEMCU) -P /dev/spidev0.0 -c linuxspi -b 10000 -U lfuse:w:0x62:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m 
    sudo gpio -g write 22 1 

clean : 
    rm -f *.hex *.obj *.o 

Aber jemand hat kann mir erklären, warum es Arbeit ist, wenn ich die Datei make verwenden und warum funktioniert es nicht, wenn ich das tun:

sudo gpio -g mode 22 out 
sudo gpio -g write 22 0 
sudo /usr/local/bin/avrdude -p t85 -P /dev/spidev0.0 -c linuxspi -b 10000 -U flash:w:blinky.hex 

Danke und ich hoffe, dass es jemand

helfen könnte
+0

ich finde es! Als ich die make-Datei nicht benutzte, habe ich vergessen zu schreiben: ----> sudo gpio -g schreibe 22 1 – Lowteast

0

kommunizieren Vielleicht sollten Sie sich auch über die Arduino-Bibliothek und es zu einem Projekt hinzuzufügen. Wenn Sie dann den avr gcc-Compiler verwenden, fügen Sie die Bibliothek hinzu. Aber es scheint komisch, dass Ihr zweiter Code nicht an der Attiny arbeitet. Haben Sie überprüft, dass die .hex-Datei hexadezimalen Code enthält? :)

+0

Ok ich werde versuchen, arduino Bibliothek hinzuzufügen, aber ich weiß es immer noch nicht ob es funktionieren sollte oder nicht – Lowteast