INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Programmieren eines ATTiny 2313
12.01.2020, 14:27 (Dieser Beitrag wurde zuletzt bearbeitet: 12.01.2020 14:29 von Gerdchen03.)
Beitrag #1
Programmieren eines ATTiny 2313
Ich möchte einen ATTiny2313 so programmieren, dass am Ende eine LED blinkt.

Hier der Code:
Code:
// this is the header file that tells the compiler what pins and ports, etc.
// are available on this chip.
#include <avr/io.h>
// define what pins the LEDs are connected to.
// in reality, PB3 is really just '3'
#define LED PB3
// Some macros that make the code more readable
#define output_low(port,pin) port &= ~(1<<pin)
#define output_high(port,pin) port |= (1<<pin)
#define set_input(portdir,pin) portdir &= ~(1<<pin)
#define set_output(portdir,pin) portdir |= (1<<pin)
// this is just a program that 'kills time' in a calibrated method
void delay_ms(uint16_t ms) {
  uint16_t delay_count = 8000000 / 17500;
  volatile uint16_t i;
  while (ms != 0) {
    for (i = 0; i != delay_count; i++);
    ms--;
  }
}
int main(void) {
  // initialize the direction of PORTD #15 to be an output
  set_output(DDRB, LED);
  while (1) {
    // turn on the LED for 25ms
    output_high(PORTB, LED);
    delay_ms(25);
    // now turn off the LED for 500ms
    output_low(PORTB, LED);
    delay_ms(500);
    // turn on the LED for 25ms
    output_high(PORTB, LED);
    delay_ms(25);
    // now turn off the LED for 200ms
    output_low(PORTB, LED);
    delay_ms(200);
    // turn on the LED for 25ms
    output_high(PORTB, LED);
    delay_ms(25);
    // now turn off the LED for 800ms
    output_low(PORTB, LED);
    delay_ms(800);
    // now start over
  }
}

Dazu habe ich mir folgende Boardbibliothek heruntergeladen: https://github.com/SpenceKonde/ATTinyCore

Eingestellt habe ich
Board: ATTiny 2313/4313
Chip: ATTiny2313
Clock: 8 MHz (internal)
B.O.D. Level: B.O.D. Enabled (4,3V)
Save EEPROM: EEPROM retained
Initialize Secondary timer : no
LTO (1.6.11 + only): Enabled
tinyNeoPixel Port: Port A (pins 2,3,17)
millis()/micros(): Enabled

Das kompilierte hex file habe ich mit AVR Studio4 auf den ATTiny hoch geladen.
Die LED blinkt, aber die Zeiten sind um einiges länger als gewünscht. Habe ich ggf. die Einstellungen falsch gewählt, oder ist im Code etwas falsch konfiguriert?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.01.2020, 14:33
Beitrag #2
RE: Programmieren eines ATTiny 2313
Du hast die Fuses nicht richtig geflasht.
Oder es fehlt der Bootloader.

Die ATtinys werden von Haus aus mit 1MHz Taktfrequenz geliefert.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.01.2020, 14:38
Beitrag #3
RE: Programmieren eines ATTiny 2313
AVR Studio4 habe ich wie folgt eingestellt:
ATtiny2313 ausgewählt
ISPMode ausgewählt

Programm:
Unter Flash Datei im Hex-Mode geladen

Fuses:
Spien aktiviert
BODLEVEL auf BROWN-OUT Detection 4,3V
SUT-CKSEL auf INt. RCOsc. 8MHz; Start-Up time: 14CK +65ms

Auto:
Erase Device, Check Signature, Programm FLASH, Verfiy FLASH, Program Fuses, Verify Fuses aktiviert
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.01.2020, 14:45
Beitrag #4
RE: Programmieren eines ATTiny 2313
Ok, da ich AVR-Studio nicht habe und auch nicht kenne, kann ich leider nicht weiter helfen.
Für mich sah es so aus, wie falsche Taktfrequenz in den Fuses.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.01.2020, 14:48
Beitrag #5
RE: Programmieren eines ATTiny 2313
Wenn ich die Zeiten stoppe, kommt Faktor 8 auch in etwa hin. In die Richtung könnte es gehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.01.2020, 14:52
Beitrag #6
RE: Programmieren eines ATTiny 2313
(12.01.2020 14:48)Gerdchen03 schrieb:  Wenn ich die Zeiten stoppe, kommt Faktor 8 auch in etwa hin. In die Richtung könnte es gehen.

Dann versuche doch mal den Bootloader mit der IDE zu flashen.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.01.2020, 14:56
Beitrag #7
RE: Programmieren eines ATTiny 2313
Ich hab mal im Code folgendes geändert, und das passt soweit:
uint16_t delay_count = 1000000 / 17500;

Zitat:Dann versuche doch mal den Bootloader mit der IDE zu flashen.
Wie macht man das Wink
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.01.2020, 15:06
Beitrag #8
RE: Programmieren eines ATTiny 2313
(12.01.2020 14:56)Gerdchen03 schrieb:  Ich hab mal im Code folgendes geändert, und das passt soweit:
uint16_t delay_count = 1000000 / 17500;

Zitat:Dann versuche doch mal den Bootloader mit der IDE zu flashen.
Wie macht man das Wink

Du musst dazu die ATtinys auch in der IDE eingerichtet haben.
Dann per ISP (dein Brenner muss auch vorhanden sein) den Bootloader auf den ATtiny brennen.
Eigentlich einfach, wenn in der IDE alles nötige installiert ist.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  ATtiny 84 mit Adafruit DS3231 GeLaue 13 399 25.02.2021 00:05
Letzter Beitrag: Bitklopfer
  MMega2560-Clone läßt sich nicht programmieren kpc 8 373 08.02.2021 09:50
Letzter Beitrag: hotsystems
  LED-Blitzeffekt programmieren?? Shiranui 2 232 28.01.2021 14:42
Letzter Beitrag: Bitklopfer
  Bewegungs- und Helligkeitsabhängiges Nachtlicht mit ATTiny 84 Scouter 28 1.748 15.11.2020 23:08
Letzter Beitrag: Scouter
  Programmierung eines 3-Stellungs-Schalters nimbus-high 2 371 05.11.2020 11:10
Letzter Beitrag: MicroBahner
  Bits eines Bytes einzeln nacheinander auswerten HolgerM 3 446 02.10.2020 16:47
Letzter Beitrag: Tommy56
  Weiterverwendung eines Meßwertes juergen001 6 593 20.09.2020 11:24
Letzter Beitrag: juergen001
  Hochladen eines Sketches funktioniert nicht otti123 29 4.276 05.09.2020 15:33
Letzter Beitrag: hotsystems
  HE3D-DIY-3D-Scanner Drehteller programmieren Tscharlie 8 1.312 28.07.2020 11:41
Letzter Beitrag: hotsystems
  Programmierung Attiny 84 MaxSi 14 1.632 23.06.2020 19:39
Letzter Beitrag: Tommy56

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste