Forum: Mikrocontroller und Digitale Elektronik ATtiny: Hinzufügen von Fuses durch anpassen der boards.txt??


von Dennis S. (laemmen)


Lesenswert?

Moin,

ich nutze ArduinoISP um Tinys direkt über das Arudino zu programmieren. 
Nun möchte ich gerne einen Tiny84 mit einem externen 8MHz Quarz 
betreiben, finde aber nur einen Core in denen dieser auf 16MHz gestellt 
werden kann. Jetzt dachte ich mir, dass man doch einfach die boards.txt 
anpassen kann, in der schließlich alle Einstellungen definiert sind. 
Hier mal der Auszug für den 'ATtiny84 @ 16 MHz  (external crystal; 4.3 V 
BOD)'
1
attiny84at16.name=ATtiny84 @ 16 MHz  (external crystal; 4.3 V BOD)
2
3
# The following do NOT work...
4
# attiny84at16.upload.using=avrispv2
5
# attiny84at16.upload.using=Pololu USB AVR Programmer
6
7
# The following DO work (pick one)...
8
attiny84at16.upload.using=arduino:arduinoisp
9
# attiny84at16.upload.protocol=avrispv2
10
# attiny84at16.upload.using=pololu
11
12
attiny84at16.upload.maximum_size=8192
13
14
# Frequency 8.0- MHz; Start-up time PWRDWN/RESET: 16K CK/14 CK + 65 ms; [CKSEL=1111 SUT=11]
15
# Brown-out detection level at VCC=4.3 V; [BODLEVEL=100]
16
# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]
17
# Serial program downloading (SPI) enabled; [SPIEN=0]
18
19
attiny84at16.bootloader.low_fuses=0xFF
20
attiny84at16.bootloader.high_fuses=0xD4
21
attiny84at16.bootloader.extended_fuses=0xFF
22
attiny84at16.bootloader.path=empty
23
attiny84at16.bootloader.file=empty84at16.hex
24
25
attiny84at16.build.mcu=attiny84
26
attiny84at16.build.f_cpu=16000000L
27
attiny84at16.build.core=tiny

Hat da jemand Ahnung von oder hat soetwas schon mal gemacht? Ich habe 
zwar einen Fuse-Calculator gefunden, habe aber keine Ahnung was genau 
ich da auswählen muss/darf/soll...

Viele Grüße
Dennis

von Karl H. (kbuchegg)


Lesenswert?

Das passt schon.
Die Frequenz gibt ja der Quarz vor und nicht der Tiny.
Im Tiny muss lediglich die Anpasschaltung an den Quarz ausgewählt 
werden. DIe ist aber bei allen Quarzen größer als 8Mhz gleich. Lediglich 
wenn du einen Quarz mit weniger als 8Mhz benutzen würdest, müsste man 
mit den Fuses eine etwas andere Anpassschaltung im Tiny auswählen.

Fuse Calculator
http://www.engbedded.com/fusecalc


Edit:
Hmm. Ob allerdings der Bootloader dann mitmacht ist eine andere Frage.

von Dennis S. (laemmen)


Lesenswert?

Moin,

einen 8 MHz Quarz hatte ich auch schon dran - dann läuft der Code zwar 
nur halb so schnell, aber die serielle Kommunikation funktioniert nicht 
mehr, da die Baudrate sich auch halbiert.. Hatte vergessen das zu 
erwähnen - sorry! Ich brauche eine Baudrate von 9600 um mit einem 
RFID-Reader kommunizieren zu können. Insofern muss ich die Fuses 
anpassen. Achja und dieses 4,3V BOD soll auch weg, da ich den Tiny mit 
3,3V betrieben will :-)

Den verlinkten Rechner habe ich auch gefunden, allerdings habe ich keine 
Ahnung was ich einstellen muss....

Viele Grüße
Dennis

von Karl H. (kbuchegg)


Lesenswert?

Dennis S. schrieb:
> Moin,
>
> einen 8 MHz Quarz hatte ich auch schon dran - dann läuft der Code zwar
> nur halb so schnell, aber die serielle Kommunikation funktioniert nicht
> mehr, da die Baudrate sich auch halbiert..


Logisch.
Dazu muss man den Code anpassen.

> erwähnen - sorry! Ich brauche eine Baudrate von 9600 um mit einem
> RFID-Reader kommunizieren zu können. Insofern muss ich die Fuses
> anpassen.

Du musst vor allen Dingen die Berechnung der Baudratenteiler 
entsprechend auf die neue Taktfrequenz umprogrammieren.
Mit den Fuses hat das nicht das geringste zu tun.

> Achja und dieses 4,3V BOD soll auch weg, da ich den Tiny mit
> 3,3V betrieben will :-)

> Den verlinkten Rechner habe ich auch gefunden, allerdings habe ich keine
> Ahnung was ich einstellen muss....

Du gibst deine Werte ein, lässt den Calculator die mal aufdröseln, 
änderst das was du ändern willst (BOD Fuse), liest die neuen Werte vom 
Calculator aus und brennst sie.
Ist doch nun wirklich recht naheliegend.

von Dennis S. (laemmen)


Angehängte Dateien:

Lesenswert?

Moin,

danke für die Aufklärung!

Karl Heinz Buchegger schrieb:
> Logisch.
> Dazu muss man den Code anpassen.

Inwiefern anpassen? Serial.begin(19200); um dann 9600 bei 8 MHz zu 
haben??

> Du musst vor allen Dingen die Berechnung der Baudratenteiler
> entsprechend auf die neue Taktfrequenz umprogrammieren.
> Mit den Fuses hat das nicht das geringste zu tun.

Wo mache ich das?

> Du gibst deine Werte ein, lässt den Calculator die mal aufdröseln,
> änderst das was du ändern willst (BOD Fuse), liest die neuen Werte vom
> Calculator aus und brennst sie.
> Ist doch nun wirklich recht naheliegend.

Naheliegend? Naja, für jemanden der das schon mal gemacht hat 
vielleicht... Gehen wir die Liste mal durch:

* Als erstes den Tiny84 auswählen - naheliegend ;-)
* Features... auf jeden Fall External Clock und nicht External 
Oscillator?! Ich habe ja einen Quarz und keinen Oszillator. Also dann 
vielleicht [CKSEL=0010 SUT=10]; ???
* Clock output on PORTB2; [CKOUT=0] ... nicht ausgewählt, lasse ich mal 
so
* Divide clock by 8 internally; [CKDIV8=0] ... ist ausgewählt, lasse ich 
auch so
* BOD disabled

habe sonst alles gelassen wie es war und in den manuellen Einstellungen 
nichts verändert. Screenshot im Anhang

Viele Grüße
Dennis

von Dennis S. (laemmen)


Lesenswert?

Ich hatte nochmal versucht mich am o.g. Referenzbeispiel zu orientieren, 
aber ich bin mir echt nicht sicher :-/

Was ich eigentlich nur brauche ist die Möglichkeit den Tiny mit 8 MHz 
über einen Quarz zu takten, sodass auch die Baudrate stimmt und die 
serielle Kommunikation korrekt läuft. Das BOD zu deaktivieren ist ja 
recht einfach, allerdings nicht der Takt-Teiler und die übrigen 
Funktionen. Da weiß ich nicht, ob und was ich brauche...

Bräuchte da bitte noch mal eine Auflösung zu :-)

Viele Grüße
Dennis

von Karl H. (kbuchegg)


Lesenswert?

Dennis S. schrieb:

>> Dazu muss man den Code anpassen.
>
> Inwiefern anpassen? Serial.begin(19200); um dann 9600 bei 8 MHz zu
> haben??


Kann man natürlich machen.
Wenn der Tacho falsch anzeigt, verbiegt man die Tachonadel.

>
>> Du musst vor allen Dingen die Berechnung der Baudratenteiler
>> entsprechend auf die neue Taktfrequenz umprogrammieren.
>> Mit den Fuses hat das nicht das geringste zu tun.
>
> Wo mache ich das?

Da musst du die Arduino Leute fragen.
Wir programmieren hier direkt. Da ändert man dann halt einfach den 
Zahlenwert für die Taktfrequenz in der Formel, mit der man die 
entsprechenden Konfigurationswerte ausrechnet.

Irgendwie wird daqs bei den Arduino Klassen auch gehen.

>> Du gibst deine Werte ein, lässt den Calculator die mal aufdröseln,
>> änderst das was du ändern willst (BOD Fuse), liest die neuen Werte vom
>> Calculator aus und brennst sie.
>> Ist doch nun wirklich recht naheliegend.
>
> Naheliegend? Naja, für jemanden der das schon mal gemacht hat
> vielleicht... Gehen wir die Liste mal durch:
>
> * Als erstes den Tiny84 auswählen - naheliegend ;-)
> * Features... auf jeden Fall External Clock und nicht External
> Oscillator?! Ich habe ja einen Quarz und keinen Oszillator. Also dann
> vielleicht [CKSEL=0010 SUT=10]; ???



Du hast den WICHTIGSTEN Punkt überhaupt vergessen.
Du hast nicht die Fuse-Werte aus deinem verlinkten File von da oben erst 
mal in den Calculator eingegeben!
Noch besser wäre es, die aktuellen Werte direkt aus dem Tiny auszulesen. 
Denn in einer Datei kann viel stehen - das muss deswegen noch lange 
nicht mit der Realität übereinstimmen.

Nimm das nicht auf die leichte Schulter! Du bist nicht der erste, der 
sich mit einer falschen Fuse-Clock Einstellung aus dem µC ausgesperrt 
hat.

Da du den µC sowieso schon auf Quarz laufen hast, und nur einen anderen 
Quarz benutzen möchtest (warum eigentlich? 16Mhz ist doch gut), lässt du 
diese Dinge in Ruhe und belässt sie so wie sie eingestellt sind.

Und nein. external Clock wäre falsch gewesen. Und zwar richtig falsch!
Gib die Bytes aus dem Beschreibungsfile erst in den Calculator und lass 
diese Dinge in Ruhe!

von Karl H. (kbuchegg)


Lesenswert?

Karl Heinz Buchegger schrieb:

>> Wo mache ich das?
>
> Da musst du die Arduino Leute fragen.
> Wir programmieren hier direkt. Da ändert man dann halt einfach den
> Zahlenwert für die Taktfrequenz in der Formel, mit der man die
> entsprechenden Konfigurationswerte ausrechnet.
>
> Irgendwie wird daqs bei den Arduino Klassen auch gehen.
>


Hmm. Ein kurzes googeln hat ergeben, dass wohl die Arduino Sachen recht 
fest auf 16Mhz hinprogrammiert sind.
D.h. wenn du mit einer anderen Taktfrequenz fahren möchtest, hast du je 
nach Programm einiges an Arbeit vor dir, um die vorhandenen Klassen und 
Funktionen dahingehend umzuändern.

von Dennis S. (laemmen)


Lesenswert?

Danke für die Antwort! Ich wusste nicht, dass man unten auch direkt 
Werte eingeben kann. Das hilft natürlich schon mal etwas weiter. Die 
Arduino-Leute wissen das soweit auch nicht, die haben mich an die 
Spezialisten hier weiterempfohlen ;-)

Auf keinen Fall möchte ich etwas verfusen, weshalb ich ja auch hier 
nachfrage. Ich muss Strom sparen, daher zählen auch die paar mA, die man 
bei 8 MHz einspart (Akku-Betrieb).

Okay, also external Oszillator. Habe die Referenzwerte eingegeben und 
sehe jetzt die Konfiguration. Wenn ich jetzt nur den BOD deaktiviere und 
die entsprechenden Fuses in meine boards.txt übertrage sollte das doch 
auch so funktionieren??! Dann hätte ich einen wichtigen Punkt, den Tiny 
mit 3,3V zu betreiben, schon mal abgehakt.

>>Wir programmieren hier direkt. Da ändert man dann halt einfach den
>>Zahlenwert für die Taktfrequenz in der Formel, mit der man die
>>entsprechenden Konfigurationswerte ausrechnet.

Ich dachte, dass die Taktfrequenzen direkt in der boards.txt definiert 
sind:


Aus Referenz: ATtiny84 @ 16 MHz / ext. xtal
>attiny84at16.build.f_cpu=16000000L

Aus Referenz: ATtiny84 @ 8 MHz / int. xtal
>attiny84at8.build.f_cpu=8000000L

Keine Chance das einfach hier zu ändern??

Viele Grüße
Dennis

von Karl H. (kbuchegg)


Lesenswert?

Dennis S. schrieb:

> Okay, also external Oszillator. Habe die Referenzwerte eingegeben und
> sehe jetzt die Konfiguration. Wenn ich jetzt nur den BOD deaktiviere und
> die entsprechenden Fuses in meine boards.txt übertrage sollte das doch
> auch so funktionieren??!

Zumindest änderst du dann nichts ungewollt, was da bereits eingestellt 
ist.

>>>Wir programmieren hier direkt. Da ändert man dann halt einfach den
>>>Zahlenwert für die Taktfrequenz in der Formel, mit der man die
>>>entsprechenden Konfigurationswerte ausrechnet.
>
> Ich dachte, dass die Taktfrequenzen direkt in der boards.txt definiert
> sind:

Aber ob die entsprechenden Klassen diese Information auch auswerten, ist 
eine andere Frage, die ich dir nicht beantworten kann. Schau dir halt 
den Code der Klasse für die Serielle Schnittstelle an. Dann weißt du es.

von Dennis S. (laemmen)


Angehängte Dateien:

Lesenswert?

Karl Heinz Buchegger schrieb:
> Karl Heinz Buchegger schrieb:
>
>>> Wo mache ich das?
>>
>> Da musst du die Arduino Leute fragen.
>> Wir programmieren hier direkt. Da ändert man dann halt einfach den
>> Zahlenwert für die Taktfrequenz in der Formel, mit der man die
>> entsprechenden Konfigurationswerte ausrechnet.
>>
>> Irgendwie wird daqs bei den Arduino Klassen auch gehen.
>>
>
>
> Hmm. Ein kurzes googeln hat ergeben, dass wohl die Arduino Sachen recht
> fest auf 16Mhz hinprogrammiert sind.
> D.h. wenn du mit einer anderen Taktfrequenz fahren möchtest, hast du je
> nach Programm einiges an Arbeit vor dir, um die vorhandenen Klassen und
> Funktionen dahingehend umzuändern.

Auf jeden Fall die Arduinos, nicht jedoch die Tinys. Hier kann man ja 
zwischen festen Clocks von intern 1 MHz & 8 MHz und extern 16 MHz oder 
teilweise 20 MHz wählen (siehe Anhang)

Viele Grüße
Dennis

von bernd59 (Gast)


Lesenswert?

Kopiere einfach eine ATTiny - Gruppe in Boards.txt und ändere die 
Frequenz, und fertig
1
attiny84at8E.name=ATtiny84 @ 8 MHz  
2
3
# The following do NOT work...
4
# attiny84at8E.upload.using=avrispv2
5
# attiny84at8E.upload.using=Pololu USB AVR Programmer
6
7
# The following DO work (pick one)...
8
attiny84at8E.upload.using=arduino:arduinoisp
9
# attiny84at8E.upload.protocol=avrispv2
10
# attiny84at8E.upload.using=pololu
11
12
attiny84at8E.upload.maximum_size=8192
13
14
# Frequency 8.0- MHz; Start-up time PWRDWN/RESET: 16K CK/14 CK + 65 ms; [CKSEL=1111 SUT=11]
15
# Brown-out detection level at VCC=4.3 V; [BODLEVEL=100]
16
# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]
17
# Serial program downloading (SPI) enabled; [SPIEN=0]
18
19
attiny84at8E.bootloader.low_fuses=0xFF
20
attiny84at8E.bootloader.high_fuses=0xD4
21
attiny84at8E.bootloader.extended_fuses=0xFF
22
attiny84at8E.bootloader.path=empty
23
attiny84at8E.bootloader.file=empty84at16.hex
24
25
attiny84at8E.build.mcu=attiny84
26
attiny84at8E.build.f_cpu=8000000L
27
attiny84at8E.build.core=tiny

Bernd

von Dennis S. (laemmen)


Lesenswert?

bernd59 schrieb:
> Kopiere einfach eine ATTiny - Gruppe in Boards.txt und ändere die
> Frequenz, und fertig
>
>
1
> attiny84at8E.name=ATtiny84 @ 8 MHz
2
> 
3
> # The following do NOT work...
4
> # attiny84at8E.upload.using=avrispv2
5
> # attiny84at8E.upload.using=Pololu USB AVR Programmer
6
> 
7
> # The following DO work (pick one)...
8
> attiny84at8E.upload.using=arduino:arduinoisp
9
> # attiny84at8E.upload.protocol=avrispv2
10
> # attiny84at8E.upload.using=pololu
11
> 
12
> attiny84at8E.upload.maximum_size=8192
13
> 
14
> # Frequency 8.0- MHz; Start-up time PWRDWN/RESET: 16K CK/14 CK + 65 ms; 
15
> [CKSEL=1111 SUT=11]
16
> # Brown-out detection level at VCC=4.3 V; [BODLEVEL=100]
17
> # Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]
18
> # Serial program downloading (SPI) enabled; [SPIEN=0]
19
> 
20
> attiny84at8E.bootloader.low_fuses=0xFF
21
> attiny84at8E.bootloader.high_fuses=0xD4
22
> attiny84at8E.bootloader.extended_fuses=0xFF
23
> attiny84at8E.bootloader.path=empty
24
> attiny84at8E.bootloader.file=empty84at16.hex
25
> 
26
> attiny84at8E.build.mcu=attiny84
27
> attiny84at8E.build.f_cpu=8000000L
28
> attiny84at8E.build.core=tiny
29
>
>
> Bernd

Hi Bernd,

hatte das auch schon mal versucht, aber bei mir wurde die Gruppe dann 
nicht unter Boards aufgelistet. Nach dem Ausschlussprinzip liegt das an 
der definition der Bootlader-File. Du hast hier:

> attiny84at8E.bootloader.file=empty84at16.hex

warum nicht empty84at8.hex oder empty84at8E.hex? So eingegeben wird die 
Option nicht unter Boards aufgeführt, deine Version hingegen wird 
angezeigt! Besten Dank auch dafür!

Viele Grüße
Dennis

von Dennis S. (laemmen)


Lesenswert?

Hmm habe jetzt mal den Bootloader gebrannt und einen Sketch auf den Tiny 
geladen. Die serielle Kommunikation läuft trotzdem nur mit einem 16 MHz 
Quarz - bei 8 MHz läuft nichts.

Habe
> attiny84at8E.bootloader.file=empty84at16.hex
zu
> attiny84at8E.bootloader.file=empty84at8.hex

editiert, aber es funktioniert trotzdem nur mit dem 16 MHz Quarz. Muss 
ich die Hexfile noch editieren? Die wird ja soweit immer für den 
internen Oszillator verwendet.

Viele Grüße
Dennis

von bernd59 (Gast)


Lesenswert?

Welchen Bootlaoder? Ich nutze den Attiny ohne Bootlader. Wenn man den 
Menüpunkt in der Arduino-IDE aufruft, werden nur die Fuses gesetzt. Das 
Programm wird mit einem Programmer übertragen.
Achtung: Du mußt nach jedem ändern von Boards.txt die IDE neu starten.

Bei mir sieht so ein Eintrag so aus:
1
attiny84-20.name=ATtiny84 (external 20 MHz clock)
2
// Der Name für die Anzeige
3
attiny84-20.bootloader.low_fuses=0xfe
4
attiny84-20.bootloader.high_fuses=0xdf
5
attiny84-20.bootloader.extended_fuses=0xff
6
// Die Fuse Bits, die gesetzt werden. Müssten bei 8 / 16 /20 Mhz externen Takt gleich sein
7
attiny84-20.upload.maximum_size=8192
8
// der max. FLASH - Speicher
9
attiny84-20.build.mcu=attiny84
10
// der Name der CPU für den Compiler+Programmer
11
attiny84-20.build.f_cpu=20000000L
12
// Die Frequenz, für das das Programm compiliert wird
13
attiny84-20.build.core=arduino:arduino
14
// es werden die Standard-Include-Dateien des Arduino genutzt
15
attiny84-20.build.variant=tiny14
16
// für das Verzeichnis des pins_arduino.h
die Frequenz wird dem avr-g++ als Parameter DF_CPU=20000000L mitgegeben

Bernd

von Dennis S. (laemmen)


Lesenswert?

bernd59 schrieb:
> Welchen Bootlaoder? Ich nutze den Attiny ohne Bootlader. Wenn man den
> Menüpunkt in der Arduino-IDE aufruft, werden nur die Fuses gesetzt. Das
> Programm wird mit einem Programmer übertragen.
> Achtung: Du mußt nach jedem ändern von Boards.txt die IDE neu starten.
>
> Bei mir sieht so ein Eintrag so aus:
>
1
> attiny84-20.name=ATtiny84 (external 20 MHz clock)
2
> // Der Name für die Anzeige
3
> attiny84-20.bootloader.low_fuses=0xfe
4
> attiny84-20.bootloader.high_fuses=0xdf
5
> attiny84-20.bootloader.extended_fuses=0xff
6
> // Die Fuse Bits, die gesetzt werden. Müssten bei 8 / 16 /20 Mhz 
7
> externen Takt gleich sein
8
> attiny84-20.upload.maximum_size=8192
9
> // der max. FLASH - Speicher
10
> attiny84-20.build.mcu=attiny84
11
> // der Name der CPU für den Compiler+Programmer
12
> attiny84-20.build.f_cpu=20000000L
13
> // Die Frequenz, für das das Programm compiliert wird
14
> attiny84-20.build.core=arduino:arduino
15
> // es werden die Standard-Include-Dateien des Arduino genutzt
16
> attiny84-20.build.variant=tiny14
17
> // für das Verzeichnis des pins_arduino.h
18
>
> die Frequenz wird dem avr-g++ als Parameter DF_CPU=20000000L mitgegeben
>
> Bernd

Hmm du scheinst andere Cores zu verwenden. Die Parameteränderungen der 
CPU-Geschwindigkeiten haben bei mir keine Auswirkungen. Zumindest 
funktioniert die serielle Kommunikation ausschließlich bei 16 MHz... Ich 
leere gleich den Hardwareordner und mache ein cleanes Setup mit nur 
einem Core - momentan habe ich alle drin, die es gibt... Welchen Core 
verwendest du?

Viele Grüße
Dennis

von bernd59 (Gast)


Lesenswert?

Hallo,

ich habe dir unter http://www.nfix.de/temp/hardware.zip meinen 
hardware-Ordner bereitgestellt.

Bernd

von Dennis S. (laemmen)


Lesenswert?

bernd59 schrieb:
> Hallo,
>
> ich habe dir unter http://www.nfix.de/temp/hardware.zip meinen
> hardware-Ordner bereitgestellt.
>
> Bernd

Hi Bernd, vielen Dank! Leider funktionieren die Cores nicht mit 
SoftwareSerial und einer anderen Library :-/ ich bekomme immer direkt 
eine Fehlermeldung...

Habe jetzt die anderen Cores rausgeschmissen und die folgenden Parameter 
als einzige in der boards.txt

attiny84at8E.name=ATtiny84 @ 8 MHz (external crystal; BOD disabled)

# The following do NOT work...
# attiny84at8E.upload.using=avrispv2
# attiny84at8E.upload.using=Pololu USB AVR Programmer

# The following DO work (pick one)...
attiny84at8E.upload.using=arduino:arduinoisp
# attiny84at8E.upload.protocol=avrispv2
# attiny84at8E.upload.using=pololu

attiny84at8E.upload.maximum_size=8192

# Frequency 8.0- MHz; Start-up time PWRDWN/RESET: 16K CK/14 CK + 65 ms; 
[CKSEL=1111 SUT=11]
# Brown-out detection disabled; [BODLEVEL=111]
# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]
# Serial program downloading (SPI) enabled; [SPIEN=0]

attiny84at8E.bootloader.low_fuses=0xFF
attiny84at8E.bootloader.high_fuses=0xD7
attiny84at8E.bootloader.extended_fuses=0xFF
attiny84at8E.bootloader.path=empty
attiny84at8E.bootloader.file=empty84at8.hex

attiny84at8E.build.mcu=attiny84
attiny84at8E.build.f_cpu=8000000L
attiny84at8E.build.core=tiny

Trotzdem funktioniert die serielle Kommunikation weiterhin 
ausschließlich mit einem 16 MHz Quarz. Der Tiny scheint aber wenigstens 
mit 3,6V zu laufen, die BOD scheint also abgeschaltet zu sein. Noch ne 
Idee wie ich es anderweitig versuchen kann??

Viele Grüße
Dennis

von bernd59 (Gast)


Lesenswert?

Hallo,

ich habe mal folgendes Programm getestet:
1
#include <SoftwareSerial.h>
2
3
SoftwareSerial uart=SoftwareSerial(0,1);
4
5
void setup(){
6
  uart.begin(9600);
7
}
8
9
void loop(){
10
  uart.print("Hallo Bernd");
11
  uart.println();
12
  delay(1000);
13
}
Das läuft bei mir richtig. Ich habe allerdings keinen 8 MHz Quarz und 
habe es deshalb mit 8 MHz internen Takt getestet. Die HEX habe ich unter 
http://www.nfix.de/temp/SoftwareSerial.cpp.hex abgelegt. Das müßtest du 
direkt flaschen können

Bernd

von Dennis S. (laemmen)


Lesenswert?

Nachdem es auch nach mehreren Versuchen immer noch nicht funktioniert 
hat, habe ich es heute erneut versucht und es klappt anstandslos. Keine 
Ahnung wo der Fehler war, habe seitdem nichts verändert...

Auf jeden Fall vielen Dank!

Viele Grüße
Dennis

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.