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
  Umwandlung eines Strings in ein time_t-Objekt jalu4601 1 182 02.01.2020 10:56
Letzter Beitrag: RolandF
  Schrittmotoren bewegen mithilfe eines Joysticks schaarva 8 582 08.12.2019 15:15
Letzter Beitrag: MicroBahner
  Den Wert eines PWM Pins auslesen - was mache ich falsch? Gelegenheitsbastler 8 599 25.11.2019 10:49
Letzter Beitrag: MicroBahner
  Microcontroller per Arduino programmieren? Stagneth.Alexander 11 1.208 04.09.2019 15:40
Letzter Beitrag: hotsystems
Lightbulb Abspielen einer Sounddatei durch Aktivierung eines Bewegungsmelders FeLu 6 612 03.09.2019 20:45
Letzter Beitrag: hotsystems
  Makeblock mit Scratch programmieren- Probleme Keinen Schimmer 18 13.684 27.05.2019 15:53
Letzter Beitrag: Hellow2
  Programmierung eines MIDI-Controllers Schraubfix 17 2.065 25.02.2019 12:24
Letzter Beitrag: Tommy56
  Programmierung eines Arduino Uno mit Motorshield Lancair4 8 1.156 24.02.2019 09:49
Letzter Beitrag: Lancair4
  TCS34725 farbsensor programmieren Mux 5 829 21.02.2019 21:21
Letzter Beitrag: Mux
  Programmierung eines ToF-Abstandssensors fragesteller1 3 640 01.02.2019 23:21
Letzter Beitrag: Tommy56

Gehe zu:


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