Forum: Mikrocontroller und Digitale Elektronik Attiny45 Programmierung


von Lars R. (gravia)


Lesenswert?

Hallo.

Habe bereits einiges an Arduino Uno/Mega programmiert wollte aber nun 
eine kleine Schaltung mit dem attiny45 ausprobieren.

Habe mir entsprechend meines Projekts schon eine Schaltung in Eagle 
erstellt und passend dazu ein "ISP-Shield" für den Arduino Uno 
(Anleitung/Idee von der Seite Kreativekiste .de)

Auf der Seite wird auch gezeigt das der Author mit der Arduino IDE 
arbeitet.
Jetzt ist meine Frage (da ich so oft jetzt gelesen habe das es nur mit 
Assembler geht) ob ich den attiny auch mit C programmieren kann und wenn 
ja ob ich bei dieser Methode noch etwas vorher programmieren muss bevor 
der Arduino das Programm auf den attiny schreiben kann.

Und kann mir jemand sagen wie bzw ob die Pins vom attiny iwie zugewiesen 
werden müssen (da die ja anscheinend mehrere Funktionen haben )

Ich entschuldige mich wenn ich einen schon passenden Beitrag nicht 
gefunden habe und bedanke mich im Vorraus für eure Hilfe

Gruß Lars

von Robin S. (der_r)


Lesenswert?

>ob ich den attiny auch mit C programmieren kann

http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial

Rest: Google "Attiny 45 Arduino programmieren"


Frage zu den Pins steht im Datenblatt oder auch im ersten Link.

: Bearbeitet durch User
von Kurt (kurtcontroller)


Lesenswert?

Hi,

hier ein Beispiel aus dem Internet:

//
// Tiny45
// 4 LED
// Hausbeleuchtung
//
#include <util/delay.h>         // Einbindung Datei Pause
#include <avr/io.h>             // Einbindung Datei Ausgänge
int main(void)
  {
    DDRB=0b0001111;             // Port B 0-3 auf Ausgang schalten
    while(1)                    // Programmschleife
      {
        PORTB &= ~+(1<<PB0);    // Schaltet Pin aus
        _delay_ms(500);         // Pause 500 ms
        PORTB |= (1<<PB0);      // Schaltet Pin ein
        _delay_ms(1500);        // Pause 1500 ms

        PORTB &= ~(1<<PB1);     // Schaltet Pin aus
        _delay_ms(500);         // Pause 500 ms
        PORTB |= (1<<PB1);      // Schaltet Pin ein
        _delay_ms(500);         // Pause 500 ms

        PORTB &= ~(1<<PB2);     // Schaltet Pin aus
        _delay_ms(1500);        // Pause 1500 ms
        PORTB |= (1<<PB2);      // Schaltet Pin ein
        _delay_ms(500);         // Pause 500 ms

        PORTB &= ~(1<<PB3);     // Schaltet Pin aus
        _delay_ms(500);         // Pause 500 ms
        PORTB |= (1<<PB3);      // Schaltet Pin ein
        _delay_ms(500);         // Pause 500 ms

      }
  }

von c-hater (Gast)


Lesenswert?

Lars R. schrieb:

> Jetzt ist meine Frage (da ich so oft jetzt gelesen habe das es nur mit
> Assembler geht) ob ich den attiny auch mit C programmieren kann

Natürlich kann man einen Tiny45 auch in C programmieren. Mit Assembler 
kann man ihn nur deutlich weiter ausreizen. Aber das ist eigentlich bei 
praktisch jedem µC so.

Kannst du dir ungefähr so vorstellen wie beim Car-Tuning. Serie ist C, 
getuned ist Assembler. Serie hat vielleicht 220PS, getuned 700..800.

Die Frage ist eigentlich: brauche ich zum "Brötchenholen von der Tanke" 
(zu mehr bist du sowieso nicht fähig, sonst hättest du diese Frage erst 
garnicht gestellt) 800PS oder reichen dafür auch die 220 ab Werk?

That's it.

von Lars R. (gravia)


Lesenswert?

Danke für die vielen hilfreichen antworten.


Gruß Lars R.

von Stefan F. (Gast)


Lesenswert?

Manchmal frage ich mich, ob der durchschnittliche Arduino Programmierer 
nicht einmal die Doku zu seinem Arduino System lesen kann.

https://create.arduino.cc/projecthub/arjun/programming-attiny85-with-arduino-uno-afb829

Hier steht doch alles, was man dazu wissen muss. Da sind all deine 
Fragen beantwortet!

von Stefan F. (Gast)


Lesenswert?

> daß sie selbst vor nutzlosesten Antworten nicht Halt machen.

Ich hatte gehofft, dass der Link zur entsprechenden Arduino Webseite 
helfen würde. Dort sind die Fragen wirklich alle beantwortet.

von Robin S. (der_r)


Lesenswert?

c-hater schrieb:
> Lars R. schrieb:
>
>> Jetzt ist meine Frage (da ich so oft jetzt gelesen habe das es nur mit
>> Assembler geht) ob ich den attiny auch mit C programmieren kann
>
> Natürlich kann man einen Tiny45 auch in C programmieren. Mit Assembler
> kann man ihn nur deutlich weiter ausreizen. Aber das ist eigentlich bei
> praktisch jedem µC so.
>
> Kannst du dir ungefähr so vorstellen wie beim Car-Tuning. Serie ist C,
> getuned ist Assembler. Serie hat vielleicht 220PS, getuned 700..800.
>
> Die Frage ist eigentlich: brauche ich zum "Brötchenholen von der Tanke"
> (zu mehr bist du sowieso nicht fähig, sonst hättest du diese Frage erst
> garnicht gestellt) 800PS oder reichen dafür auch die 220 ab Werk?
>
> That's it.


Naja sagen wir mal 220 auf 250 PS, das triffts schon eher. Im vergleich 
zu irgendwelchem durchschnittlichen Standardcode wird man nach 
C-Optimierung sicher keine 3-4 fache "Leistung" durch Assembler 
bekommen.

von Karl M. (Gast)


Lesenswert?

Hallo,

es stellt sich immer die Frage, wie man das Beurteilen möchte.

weniger Flash, SRam oder mehr Programmdurchläufe pro Sekunden.

Robin S. schrieb:
> Naja sagen wir mal 220 auf 250 PS, das triffts schon eher. Im vergleich
> zu irgendwelchem durchschnittlichen Standardcode wird man nach
> C-Optimierung sicher keine 3-4 fache "Leistung" durch Assembler
> bekommen.

Ich habe einen 4 zu 16 Dekoder in einer Hochsprache und später in 
Assembler realisiert und kann der Faktor 3 an weniger 
Flashspeicherbedarf schon ablesen.

von Lars R. (gravia)


Lesenswert?

Stefan U. schrieb:
> Manchmal frage ich mich, ob der durchschnittliche Arduino Programmierer
> nicht einmal die Doku zu seinem Arduino System lesen kann.
>
> 
https://create.arduino.cc/projecthub/arjun/programming-attiny85-with-arduino-uno-afb829
>
> Hier steht doch alles, was man dazu wissen muss. Da sind all deine
> Fragen beantwortet!

Doch natürlich ,habe mir schon gewisse Fragen durch das Datenblatt 
beantwortet , bin jedoch was das Programmieren angeht nicht wirklich 
schlau geworden.

Aber danke für den Link , der beantwortet echt alle meine Fragen.


Gruß Lars R.

von Lars R. (gravia)


Lesenswert?

c-hater schrieb:
> Die Frage ist eigentlich: brauche ich zum "Brötchenholen von der Tanke"
> (zu mehr bist du sowieso nicht fähig, sonst hättest du diese Frage erst
> garnicht gestellt) 800PS oder reichen dafür auch die 220 ab Werk?

ich sag mal so :Ich will mit dem Baustein nicht mehr als nur Brötchen 
bei de Tanke holen.

Wenn das mit C nicht möglich gewesen wäre hätte ich halt Assembler 
programmieren müssen, was ich aber nicht unbedingt wollte da ich lieber 
C programmiere.

Oder brauchst du nur für Brötchen holen extra 800PS ?

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
Noch kein Account? Hier anmelden.