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
  Bits eines Bytes einzeln nacheinander auswerten HolgerM 3 171 02.10.2020 16:47
Letzter Beitrag: Tommy56
  Weiterverwendung eines Meßwertes juergen001 6 325 20.09.2020 11:24
Letzter Beitrag: juergen001
  Hochladen eines Sketches funktioniert nicht otti123 29 2.875 05.09.2020 15:33
Letzter Beitrag: hotsystems
  HE3D-DIY-3D-Scanner Drehteller programmieren Tscharlie 8 769 28.07.2020 11:41
Letzter Beitrag: hotsystems
  Programmierung Attiny 84 MaxSi 14 1.028 23.06.2020 19:39
Letzter Beitrag: Tommy56
  Modbus RTU programmieren Alex_tech 3 488 01.06.2020 11:06
Letzter Beitrag: Tommy56
  String, char - und wie die Trennung eines Inputs vornehmen rev.antun 1 551 11.05.2020 20:01
Letzter Beitrag: Tommy56
  programmieren auf Apple/Mac-Basis MMeyer 2 554 03.04.2020 07:41
Letzter Beitrag: MMeyer
  2 Näherungsschalter programmieren. Misterarduino 9 1.182 08.02.2020 13:06
Letzter Beitrag: hotsystems
  Umwandlung eines Strings in ein time_t-Objekt jalu4601 1 585 02.01.2020 10:56
Letzter Beitrag: RolandF

Gehe zu:


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