www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Tiny15 zur Relaissteuerung


Autor: Axel L. (ligonap)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Vorab: Ich bin ein absoluter Neuling auf dem Thema Mikrocontroller.
Natürlich habe ich mich im Netz umgesehen, aber so ganz steige ich noch 
nicht durch diesen kryptischen Assembler durch.

Mir schwebt folgender Ablauf vor: Nach etwa einer Sekunden (nach dem 
Einschalten) soll der ATtiny15L für 500ms ein Reed-Relais (über einen 
N-HexFet - PB4) schalten. Keine Wiederholung, kein erneuter Reset.

Aktuell habe ich mir für den Assembler im groben folgenden Ablauf 
vorgestellt:
- Laden der "tn15def.inc"
- Definition irgendwelcher Register
- Reset
- Timer 1000ms
- Relais einschalten (PB4)
- Timer 500ms
- Relais ausschalten (PB4)

Weiß jemand Rat oder kann mir helfend unter die Arme greifen?

Grüße
Axel

Autor: Elektronix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Axel,

du kannst auch BASCOM (BASIC-Compiler) statt Assembler nutzen. Als 
Anfänger und für dieses kleine Projekt tust du dir bestimmt leichter zum 
Ziel zu kommen. Schau mal auf www.mcselec.com. Hier bekommst du eine 
Demoversion mit der du ohne Probleme den Tiny15 proggen kannst.

Autor: ja (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
..Lösch- Diode muß parallel zur Relais- Spule liegen..
Man kann auch mit Kanonen auf Spatzen schießen.
Ich würde das lieber mit einem PC und einer Relaiskarte machen...!

Autor: MaWin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Axel L. (ligonap)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
An den Relais-Kontakten befinde sich ein Reed-Relay COMUS 3563.1231.053 
mit einer Diode parallel zur Spule. ;-)
Die Diode LL4148 kann als Schutzdiode angesehen werden, die sich bereits 
auf der Platine befindet (Schaltung basiert auf einer ELV-Schaltung).

Autor: Axel L. (ligonap)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Elektronix schrieb:
> Hi Axel,
>
> du kannst auch BASCOM (BASIC-Compiler) statt Assembler nutzen. Als
> Anfänger und für dieses kleine Projekt tust du dir bestimmt leichter zum
> Ziel zu kommen. Schau mal auf www.mcselec.com. Hier bekommst du eine
> Demoversion mit der du ohne Probleme den Tiny15 proggen kannst.

So, ich habe den Tipp beherzigt und es mal mit BasCom versucht:

############################
$regfile = "ATtiny15.DAT"
$tiny
$crystal = 1600000

'Relais an PB4
Config Portb.4 = Output

'Warte 1500 ms
Waitms 1500

'Relais Ein (HIGH)
Portb.4 = 1

'Warte 500 ms
Waitms 500

'Relais Aus (Low)
Portb.4 = 0

End
#############################

Bekommen beim 'Syntax check' folgende Fehlermeldung:
Error:22 Line: 20 Out of SRAM space ,in File...

Ich glaube, BasCom ist für den Tiny15 nicht geeignet. Zumal der Tiny 
kein SRAM hat, sondern nur 32 Rechenregister als Speicher.

Autor: Kluchscheißernder Nixwisser (kluchscheisser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Axel L. schrieb:
> Elektronix schrieb:
>> Hi Axel,
>>
>> du kannst auch BASCOM (BASIC-Compiler) statt Assembler nutzen. Als
>> Anfänger und für dieses kleine Projekt tust du dir bestimmt leichter zum
>> Ziel zu kommen. Schau mal auf www.mcselec.com. Hier bekommst du eine
>> Demoversion mit der du ohne Probleme den Tiny15 proggen kannst.
>
> So, ich habe den Tipp beherzigt und es mal mit BasCom versucht:
>
> ############################
> $regfile = "ATtiny15.DAT"
> $tiny
> $crystal = 1600000

Das stimmt aber leider erst, wenn Du den Tiny15 kalibriert hast, ab Werk 
läuft der mit irgendwas um die 1,0...1,2 MHz. Neuere AVRs (Tiny13, 
Tiny25) kalibrieren den Oszillator beim Reset selbst. Bei Tiny12 und 
Tiny15 muss man das noch von Hand erledigen.

>
> 'Relais an PB4
> Config Portb.4 = Output
>
> 'Warte 1500 ms
> Waitms 1500
>
> 'Relais Ein (HIGH)
> Portb.4 = 1
>
> 'Warte 500 ms
> Waitms 500
>
> 'Relais Aus (Low)
> Portb.4 = 0
>

Hier sollte eigentlich eine Endlos-Schleife hin, da der Controller sonst 
von vorn beginnt. Ob der Befehl "End" das macht, weiß ich nicht, könnte 
aber sein.

Do
Loop

> End
> #############################
>
> Bekommen beim 'Syntax check' folgende Fehlermeldung:
> Error:22 Line: 20 Out of SRAM space ,in File...
>
> Ich glaube, BasCom ist für den Tiny15 nicht geeignet.

Eben, Hochsprachen brauchen auf AVRs SRAM. Und SRAM gibt es beim Tiny15 
nicht. Der Waitms-Befehl nutzt SRAM für die Warteschleifen.

> Zumal der Tiny
> kein SRAM hat, sondern nur 32 Rechenregister als Speicher.

Das ist aber erstmal kein Makel. Es gibt Leute, die haben mit den 
wenigen Ressourcen des Tiny15 komplexe Dinge realisiert wie z.B. 
DCC-Lokdecoder, RC-Fahrtregler mit Bremslicht und Rückfahrlicht.

Warum klammerst Du Dich eigentlich an den Tiny15? Hast Du sie vorrätig? 
Wenn nicht, dann nimm den neueren und inzwischen billigeren Tiny13, der 
hat 64 Byte SRAM und damit läuft dein Bascom-Programm. Außerdem ist sein 
Oszillator bereits kalibriert, was Dir unnötige Arbeit spart. Er ist (im 
Fachhandel) auch besser verfügbar als der Tiny15.

MfG, Consulter

Autor: Elektronix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gut, ich gebe mich geschlagen :-/
Ich habe seinerzeit den Tiny13 geproggt. Mit dem gehts ohne Probleme, da 
er 64bytes SRAM besitzt.
Du kannst aber auch in BASCOM mit Assembler arbeiten, schau mal nach 
$ASM. Im Forum gibts auch irgendwo ein paar Beispiele für Zähl- bzw. 
Warteschleifen in Assemblercode.

Autor: Ralf2008 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Axel L. schrieb:
> Bekommen beim 'Syntax check' folgende Fehlermeldung:
> Error:22 Line: 20 Out of SRAM space ,in File...
>
> Ich glaube, BasCom ist für den Tiny15 nicht geeignet. Zumal der Tiny
> kein SRAM hat, sondern nur 32 Rechenregister als Speicher.

Habe keine grosse Ahnung von Bascom, aber man soll
unter "Options", "Programmer", "Compiler" den HW-Stack
und SW-Stack auf z.B. "4" o. ä. einstellen ...


Ralf2008

Autor: Kluchscheißernder Nixwisser (kluchscheisser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Elektronix schrieb:
> Gut, ich gebe mich geschlagen :-/

Das musst Du nicht. Das war doch eine gute Vorlage zum Zeigen was nicht 
geht. ;-)

> Ich habe seinerzeit den Tiny13 geproggt. Mit dem gehts ohne Probleme, da
> er 64bytes SRAM besitzt.
> Du kannst aber auch in BASCOM mit Assembler arbeiten, schau mal nach
> $ASM. Im Forum gibts auch irgendwo ein paar Beispiele für Zähl- bzw.
> Warteschleifen in Assemblercode.

Naja, um vollständig in ASM zu arbeiten, braucht es kein Bascom, da kann 
man dann gleich im Avrstudio4 arbeiten.

Wenn man die Warteschleifen selbst programmiert, könnte es vielleicht 
gehen. Man müsste probieren, ob man mit dem Zusatz "Overlay" zum Befehl 
"Dim" die Variablen in den Adressbereich der Register (0 bis 31) zwingen 
kann. Nur zur Info für Axel: SRAM beginnt ab Adresse 96.

MfG, Consulter

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klar geht das, man muss nur wissen wie :D
Ob's Sinn macht, sich mit einem ATiny15 in Verbindung mit Bascom 
rumzuquälen sei dahingestellt.
$regfile = "ATtiny15.DAT"
$crystal = 1600000
$tiny
$noramclear
$hwstack = 0
$swstack = 0
$framesize = 0

'Relais an PB4
Config Portb.4 = Output

Do
'Warte 1500 ms
Waitms 1500

'Relais Ein (HIGH)
Portb.4 = 1

'Warte 500 ms
Waitms 500

'Relais Aus (Low)
Portb.4 = 0
Loop

End
Fehlerursache war übrigens, daß Bascom für Stack und Frame, falls nicht 
im Code definiert, die Standardeinstellungen aus den Optionen nimmt, und 
wenn da irgendetwas > 0 drinsteht, dann beschwert sich der Compiler.

Autor: Kluchscheißernder Nixwisser (kluchscheisser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Prima!!!

Wieder was gelernt (was ich wohl selbst nie brauchen werde).

MfG, Consulter

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wieder was gelernt (was ich wohl selbst nie brauchen werde).
Man weis nie, wofür's gut ist :D

Hier noch eins:

> Man müsste probieren, ob man mit dem Zusatz "Overlay" zum Befehl
> "Dim" die Variablen in den Adressbereich der Register (0 bis 31)
> zwingen kann.

Das nennt sich IRam
Dim A As Iram Byte

oder für ein definiertes Register, hier R15:
Dim A As Iram Byte At 15

Autor: Kluchscheißernder Nixwisser (kluchscheisser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke....

Autor: Axel L. (ligonap)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
MWS schrieb:
> Klar geht das, man muss nur wissen wie :D
> Ob's Sinn macht, sich mit einem ATiny15 in Verbindung mit Bascom
> rumzuquälen sei dahingestellt.
>
$regfile = "ATtiny15.DAT"
> $crystal = 1600000
> $tiny
> $noramclear
> $hwstack = 0
> $swstack = 0
> $framesize = 0
> 
> 'Relais an PB4
> Config Portb.4 = Output
> 
> Do
> 'Warte 1500 ms
> Waitms 1500
> 
> 'Relais Ein (HIGH)
> Portb.4 = 1
> 
> 'Warte 500 ms
> Waitms 500
> 
> 'Relais Aus (Low)
> Portb.4 = 0
> Loop
> 
> End
> Fehlerursache war übrigens, daß Bascom für Stack und Frame, falls nicht
> im Code definiert, die Standardeinstellungen aus den Optionen nimmt, und
> wenn da irgendetwas > 0 drinsteht, dann beschwert sich der Compiler.

Ok, läuft in BasCom.
Es lag tatsächlich an diesen Werten. Grrrrrrr

Aber...
im Simulator brauchen die 1500ms bzw. 500ms gefühlte 2,5 bzw. 0,5 min.
Die Do-Loop-Schleife ist nicht notwendig, da der Zyklus nur einmal 
durchlaufen werden soll.

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Die Do-Loop-Schleife ist nicht notwendig, da der Zyklus nur einmal
> durchlaufen werden soll.

Dann mach an's Ende ein Do/Loop, ist guter Programmierstil, damit der µC 
in einen definierten Zustand rein läuft.

Freut mich, daß es geht, ich muss gestehen, daß ich neugierig war wie 
der Code sich auf einem echten Tiny15 verhält. Denn ich hab' mir den 
erzeugten Assemblercode angesehen und Bascom bastelt ein paar PUSH/POP 
beim Aufruf der Waits rein.

PUSH/POP sind Anweisungen, die auf den Stack zugreifen, einen Stack im 
klassischen Sinn hat der Tiny15 aufgrund fehlenden SRams nicht und ihm 
gehen deshalb auch diese Anweisungen im Befehlssatz ab, er läuft also in 
ungültigen Opcode.

Aber scheinbar werden die dann als NOP gewertet und er geht einfach 
drüber.

> im Simulator brauchen die 1500ms bzw. 500ms gefühlte 2,5 bzw. 0,5 min.

Das ist normal, im AVR Studio verhält es sich ähnlich.

Wenn Du simulieren willst, setz' ein $SIM an den Codeanfang, dann werden 
die Verzögerungsschleifen leer gelassen. Nur im richtigen Code nicht 
vergessen das $SIM wieder rauszunehmen.

Autor: AVRuser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du die Schaltung so wie im Plan aufgebaut, und es funktioniert?
Denn einige Bauteilewerte sind ziemlich gewagt ...
(z.B. der Abblock-C mit 1nF, der 100nF haben sollte; auch der Widerstand 
am Eingang der 5V kann je nach Stromaufnahme des Relais problematisch 
werden)

Übrigens muss am Programm-Ende bei BASCOM keine Do-Loop Schleife stehen; 
auch beim "End" wird eine Endlos-Schleife auf sich selbst generiert.

Auch werden Assembler-Inlines nicht immer 1:1 von BASCOM übernommen. Ich 
hatte dort mal einen Assembler-Befehl mit einem ungültigen Register 
verwendet, aber statt einer Fehlermeldung hatte BASCOM diesen Befehl 
durch eine gültige ASM-Sequenz ersetzt ...

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> hatte dort mal einen Assembler-Befehl mit einem ungültigen Register
> verwendet, aber statt einer Fehlermeldung hatte BASCOM diesen Befehl
> durch eine gültige ASM-Sequenz ersetzt ...

Das passiert bei Registern im extended IO, die z.B. per IN/OUT nicht 
mehr erreicht werden können, die werden dann durch LDS/(ORI/ANDI)/STS 
ersetzt. Hat aber einen Pferdefuß.

Das ist aber beim vorliegenden Tiny15 ganz sicher nicht von Belang.

> Übrigens muss am Programm-Ende bei BASCOM keine Do-Loop Schleife stehen;
> auch beim "End" wird eine Endlos-Schleife auf sich selbst generiert.

Nun ja, End macht sogar noch mehr, es löscht auch das globale 
Interruptflag. Wenn man also den Code beenden, aber noch Interrupts im 
Hintergrund weiter laufen lassen möchte, so nimmt man doch besser 
Do/Loop, da weis man was man hat :D

Wobei das aufgrund nicht vorhandener Interrupts natürlich hier auch 
nicht wirklich wichtig ist...

Autor: Axel L. (ligonap)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
AVRuser schrieb:
> Hast du die Schaltung so wie im Plan aufgebaut, und es funktioniert?
> Denn einige Bauteilewerte sind ziemlich gewagt ...
> (z.B. der Abblock-C mit 1nF, der 100nF haben sollte; auch der Widerstand
> am Eingang der 5V kann je nach Stromaufnahme des Relais problematisch
> werden)

Gerade mit mySmartUSB light und myAVR ProgTool die bin-Datei auf den 
Tiny15 geschoben und mit dem Board getestet. Zwar nur mit 4,5V, aber 
dies liegt in der Spezifikation.
Das Relais schaltet ohne zu murren, aber es schaltet sofort und nicht 
erst nach 1,5 Sekunden für 0,5 Sekunden. Wo liegt der Fehler?
Dachte erst, dass mein N-HexFet durch ist, aber ohne Tiny tut sich 
nichts. ;-)
Also liegt es am Tiny selber. Habe ich High mit Low verwechselt?

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
10K pull down Widerstand gegen Masse an das Gate des MOSFET.
Sorgt dafür das der MOSFET sicher sperrt, wenn der AVR sich im
Reset befindet, wo die IO-Pins auf Eingang geschaltet sind und
das Gate des MOSFETs in der Luft "hängt".

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Also liegt es am Tiny selber. Habe ich High mit Low verwechselt?

Also Deine HW ist nicht so der Hit, das sind schon hässliche 
Betriebsbedingungen für einen µC. Jedoch könnten hier die ungültigen 
Opcodes ein Problem bereiten, Bascom ist da sicher nicht für den Tiny15 
optimiert.

Nimm mal folgenden Code, getestet und garantiert frei von schädlichen 
Opcodes :D
$regfile = "ATtiny15.DAT"
$crystal = 1600000
$tiny
$noramclear
$hwstack = 0
$swstack = 0
$framesize = 0

Const L1_Preset = 253
Const L2_Preset = 210

Const Preset_01s = 1                                        ' 0,1s
Const Preset_05s = 5                                        ' 0,5s
Const Preset_15s = 15                                       ' 1,5s

Loop_1_Ctr Alias R16
Loop_2_Ctr Alias R17
Loop_3_Ctr Alias R18

'Relais an PB4
Config Portb.4 = Output

'Warte 1500 ms
  !LDI     Loop_3_Ctr, Preset_15s                           ' Preset = 15 entspricht ca. 1,5 Sekunden
  !RCALL   ASM_Delay

'Relais Ein (HIGH)
Portb.4 = 1

'Warte 500 ms
  !LDI     Loop_3_Ctr, Preset_05s                           ' Preset = 5 entspricht ca. 0,5 Sekunden
  !RCALL   ASM_Delay

    'Relais Aus (Low)
Portb.4 = 0

Do
Loop

ASM_Delay:
Lbl_Loop_3:
  !LDI     Loop_2_Ctr, L2_Preset
Lbl_Loop_2:
  !LDI     Loop_1_Ctr, L1_Preset
Lbl_Loop_1:
  !DEC     Loop_1_Ctr
  !BRNE    Lbl_Loop_1
  !DEC     Loop_2_Ctr
  !BRNE    Lbl_Loop_2
  !DEC     Loop_3_Ctr
  !BRNE    Lbl_Loop_3
  !RET

End

Autor: Kluchscheißernder Nixwisser (kluchscheisser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wobei wir wieder bei Assembler sind.... ;-)

Autor: Axel L. (ligonap)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ralf schrieb:
> 10K pull down Widerstand gegen Masse an das Gate des MOSFET.
> Sorgt dafür das der MOSFET sicher sperrt, wenn der AVR sich im
> Reset befindet, wo die IO-Pins auf Eingang geschaltet sind und
> das Gate des MOSFETs in der Luft "hängt".

Gut, habe faktisch zwischen Pin2 und Pin4 einen 10k eingesetzt zum Test. 
Resultat: Die Schaltung macht gar nichts mehr. Dabei ist es egal ob ich 
das letzte Programm von MWS nehme oder nicht.

Ohne 10k Widerstand schaltet das Relais sofort (egal welches Programm). 
Rätsel über Rätsel. ????
Man steckt leider nicht im Tiny, um zu sehen was er macht. Grrrr

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wobei wir wieder bei Assembler sind.... ;-)

War das Mittel der Wahl um auszuschließen daß es möglicherweise an der 
SW scheitert. Wobei nach Lösung der HW Geschichte mich schon 
interessiert, ob die erste, ausschließliche Basic Lösung auch geht.

Zur HW, ich denke nicht, daß die Versorgung des Tiny so ok ist, die 
Spannung wird kurz einbrechen, sobald das Relais schaltet, das  reicht 
um "ungewöhnliche" Reaktionen zu erzeugen. Deshalb würde ich die µC 
Stromversorgung vom Relais entkoppeln, also Diode von + nach 10µF 
Kondensator parallel zu VCC/GND, und parallel auch noch'n 100nF dazu.

Modifizier' den Code so, daß Du ein Wechseln bekommst, also die 
Geschichte in die Loop rein und dann messen, ob der Pinzustand an PB4 
wechselt. Ohne Relais testen !

Autor: martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sicher dass die schaltung mit 1,6mhz läuft? Zähl mal die nullen im 
Bascom Programm.

Autor: Axel L. (ligonap)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
MWS schrieb:
>> Wobei wir wieder bei Assembler sind.... ;-)
>
> War das Mittel der Wahl um auszuschließen daß es möglicherweise an der
> SW scheitert. Wobei nach Lösung der HW Geschichte mich schon
> interessiert, ob die erste, ausschließliche Basic Lösung auch geht.
>
> Zur HW, ich denke nicht, daß die Versorgung des Tiny so ok ist, die
> Spannung wird kurz einbrechen, sobald das Relais schaltet, das  reicht
> um "ungewöhnliche" Reaktionen zu erzeugen. Deshalb würde ich die µC
> Stromversorgung vom Relais entkoppeln, also Diode von + nach 10µF
> Kondensator parallel zu VCC/GND, und parallel auch noch'n 100nF dazu.
>
> Modifizier' den Code so, daß Du ein Wechseln bekommst, also die
> Geschichte in die Loop rein und dann messen, ob der Pinzustand an PB4
> wechselt. Ohne Relais testen !

Das Relais zieht max. 250mA, aber doch erst nach 1,5 Sekunden und nicht 
vorher. Der Witz ist ja, der Tiny scheint sich selber nur als 
Stromleitung zu sehen.
Es darf doch nicht sein, dass ein µC beim Einschalten alle Ausgänge auf 
High setzt. Da wären schnell alle Computer hinüber.

Autor: Kluchscheißernder Nixwisser (kluchscheisser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Axel L. schrieb:

> Es darf doch nicht sein, dass ein µC beim Einschalten alle Ausgänge auf
> High setzt.

Das macht er ja normalerweise auch nicht. Woher nimmst Du diese Aussage?

Hast Du zum Test LEDs (natürlich mit Vorwiderständen) an die Portpins 
angeschlossen?

Oder hast Du Die Ports mit einem Logiktester, Oszilloskop oder 
Logik-Analyzer beobachtet?

Wenn man im Schaltungsdesign und der Programmierung Anfänger ist (was 
ja jeder von uns einmal war), dann begnügt man sich erstmal mit LEDs an 
den Ausgängen, deren Vorwiderstände so dimensioniert sind, dass die 
Ströme unter dem erlaubten Limit bleiben.

>  Da wären schnell alle Computer hinüber.

Wie soll ich diese Aussage verstehen?
Was haben Computer mit einem falsch programmierten, falsch beschalteten 
oder durch vorherige Falschprogrammierung oder Falschbeschaltung 
beschädigten Mikrocontroller zu tun?

Und ja, die Dinger gehen auch mal kaputt, wenn man ihnen zuviel zumutet.

MfG, Consulter

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> sicher dass die schaltung mit 1,6mhz läuft? Zähl mal die nullen im
> Bascom Programm.

Nö, Millihertz sicher nicht ;-) 5 Nullen, entsprechend: 1.600.000

Der letzt Code verwendet ein eigenes Delay, da wäre es völlig egal 
welchen Wert man reinschreibt.

Axel:
> Es darf doch nicht sein, dass ein µC beim Einschalten alle Ausgänge auf
> High setzt. Da wären schnell alle Computer hinüber.

Tut er ja auch nicht, von selber setzt der gar keine Leitungen auf High, 
laut Simulator auch nicht. Aber ich ahne da was, probier folgendes:
$regfile = "ATtiny15.DAT"
$crystal = 1600000
$tiny
$noramclear
$hwstack = 0
$swstack = 0
$framesize = 0

Const L1_Preset = 253
Const L2_Preset = 210

Const Preset_01s = 1                                        ' 0,1s
Const Preset_05s = 5                                        ' 0,5s
Const Preset_15s = 15                                       ' 1,5s

Loop_1_Ctr Alias R16
Loop_2_Ctr Alias R17
Loop_3_Ctr Alias R18

dim A as Iram Byte at 20

  !WDR
  !LDI   R16,         2^WDTOE + 2^WDE
  !LDI   R17,         2^WDTOE
  !OUT   WDTCR,       R16
  !OUT   WDTCR,       R17

'Relais an PB4
Config Portb.4 = Output

A = 10

'Warte 1500 ms
  !LDI     Loop_3_Ctr, Preset_15s                           ' Preset = 15 entspricht ca. 1,5 Sekunden
  !RCALL   ASM_Delay

'Relais Ein (HIGH)
Portb.4 = 1

'Warte 500 ms
  !LDI     Loop_3_Ctr, Preset_05s                           ' Preset = 15 entspricht ca. 1,5 Sekunden
  !RCALL   ASM_Delay

    'Relais Aus (Low)
Portb.4 = 0
Do
Loop

ASM_Delay:
Lbl_Loop_3:
  !LDI     Loop_2_Ctr, L2_Preset
Lbl_Loop_2:
  !LDI     Loop_1_Ctr, L1_Preset
Lbl_Loop_1:
  !DEC     Loop_1_Ctr
  !BRNE    Lbl_Loop_1
  !DEC     Loop_2_Ctr
  !BRNE    Lbl_Loop_2
  !DEC     Loop_3_Ctr
  !BRNE    Lbl_Loop_3
  !RET

End

Autor: Axel L. (ligonap)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@MWS: Danke für Deine Mühe. Habe aber nun folgendes Unternommen:

Meine bisherigen Versuche wurden mit einem Primitivnetzteil unternommen. 
Ich habe es im Verdacht für die sofortige Relais-Schaltung 
verantwortlich zu sein. Daher bin vom Netzteil auf Batterie (4,5V), wie 
es später ungefähr sein soll, gewechselt.

Auch habe ich mich mal im Assembler versucht und dies hier ist dabei 
herausgekommen:
-----------------------------------
.equ F_CPU= 1600000
.include "tn15def.inc"

.CSEG
.ORG 0x0000
rjmp Part1 ; POWER ON RESET
reti ; IRQ0 handler
reti ; Pin change handler
reti ; Timer1 Compare Match
reti ; Timer1 overflow handler
reti ; Timer0 overflow handler
reti ; EEPROM ready handler
reti ; Analog Comperator handler
reti ; ADC Conversion handler


Part1:
; Spannung an PB anlegen.

ldi r16, 0xFF
out DDRB, r16  ; PORTB configured for output
ldi r16, 0xFF
out PORTB, r16 ; LEDs ausschalten


Part2:
; Warten für 1500ms ca. 1500000 Zyklen

          ldi  R17, $08
WGLOOP0:  ldi  R18, $F8
WGLOOP1:  ldi  R19, $FB
WGLOOP2:  dec  R19
          brne WGLOOP2
          dec  R18
          brne WGLOOP1
          dec  R17
          brne WGLOOP0


Part3:
; Spannung auf Pin2 (PB4) für 500ms ca. 500000 Zyklen
sbi PORTB, 4

          ldi  R17, $0F
WGLOOP3:  ldi  R18, $37
WGLOOP4:  ldi  R19, $C9
WGLOOP5:  dec  R19
          brne WGLOOP5
          dec  R18
          brne WGLOOP4
          dec  R17
          brne WGLOOP3

cbi PORTB, 4

ende:
rjmp ende
----------------------------
Resultat: Nichts! Es tut sich nichts.
Da das Auslesen und Schreiben auf den ATtiny15 klappte, muss die Ursache 
woanders liegen. VCC und GND haben Kontakt. Kann es sein, das der Takt 
wesentlich niedriger ist als angenommen?

Autor: Kluchscheißernder Nixwisser (kluchscheisser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Axel L. schrieb:

> ldi r16, 0xFF
> out DDRB, r16  ; PORTB configured for output

Richtig...

> ldi r16, 0xFF
> out PORTB, r16 ; LEDs ausschalten

Falsch, wenn die LEDs gegen GND angeschlossen sind, was die folgenden 
Zeilen vermuten lassen, denn 0xff schaltet alle Ports auf H-Pegel....

> Part3:
> ; Spannung auf Pin2 (PB4) für 500ms ca. 500000 Zyklen
> sbi PORTB, 4


> cbi PORTB, 4

> Resultat: Nichts! Es tut sich nichts.
> Da das Auslesen und Schreiben auf den ATtiny15 klappte, muss die Ursache
> woanders liegen. VCC und GND haben Kontakt. Kann es sein, das der Takt
> wesentlich niedriger ist als angenommen?

Ja, weil die Kalibration fehlt. Je nach Exemplar kann der Takt 
unkalibriert etwa von 800 kHz bis 1,5 MHz betragen. Das ist aber nicht 
die Ursache, damit müsste es trotzdem gehen.

MfG, Consulter

Autor: Axel L. (ligonap)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kluchscheißender Consulter schrieb:
> Axel L. schrieb:
>
>> ldi r16, 0xFF
>> out PORTB, r16 ; LEDs ausschalten
>
> Falsch, wenn die LEDs gegen GND angeschlossen sind, was die folgenden
> Zeilen vermuten lassen, denn 0xff schaltet alle Ports auf H-Pegel....

Kleiner Schreibfehler. Muss eher Schalttransistor heißen, wobei die 
Source gegen GND angeschlossen ist.

Kluchscheißender Consulter schrieb:
>
> Ja, weil die Kalibration fehlt. Je nach Exemplar kann der Takt
> unkalibriert etwa von 800 kHz bis 1,5 MHz betragen. Das ist aber nicht
> die Ursache, damit müsste es trotzdem gehen.

Und wie lässt sich diese Kalibration einbinden?

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Kalibrationsbyte (z.B. 0x6F) mit dem Programmer auslesen
und in das OSCCAL-Register schreiben.

z.B.:
ldi r16,0x6F
out osccal,r16

Oder in den Flash o. das EEPROM schreiben und dort auslesen.
Das ist aber wie schon erwähnt nicht das Problem (oder die Lösung) ...

Autor: MWS (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Kuckst Du :D

Untenstehenden Code hab' ich als Tiny15 compiliert und in einen Tiny25 
(hab' keinen Tiny15 hier) geschrieben. Das geht, weil die relevanten 
Register dieselbe Adresse im IO haben und auch keine Interrupts benutzt 
werden.
Code funktioniert wie gewünscht, hier das Schalten in einer 
Endlosschleife zum Testen. Auch hab' ich die RCALLs raus genommen.
Der Code ist im übrigen mit dem für einen Tiny25 erzeugten Code exakt 
gleich.

Schau mal auch in Deiner Bascom Version nach, ob Du unter 
Compiler->Optionen->Output einen Haken in "Swap words" drin hast. Bei 
meinem Programmer (STK500) darf keiner drin sein, denn sonst ist das 
Hexfile unbrauchbar. Wie es sich mit myAVR ProgTool verhält, kann ich 
nicht sagen, mach' mal probehalber einen Haken rein, wenn keiner drin 
ist.

Angehängt auch noch das erzeugte Hexfile.
$regfile = "ATtiny15.DAT"
$crystal = 1600000
$tiny
$noramclear
$hwstack = 0
$swstack = 0
$framesize = 0

Const L1_Preset = 253
Const L2_Preset = 210

Const Preset_01s = 1                                        ' 0,1s
Const Preset_05s = 5                                        ' 0,5s
Const Preset_15s = 15                                       ' 1,5s

Loop_1_Ctr Alias R16
Loop_2_Ctr Alias R17
Loop_3_Ctr Alias R18

  !WDR
  !LDI   R16,         2^WDTOE + 2^WDE
  !LDI   R17,         2^WDTOE
  !OUT   WDTCR,       R16
  !OUT   WDTCR,       R17

'Relais an PB4
Config Portb.4 = Output

Do
'Warte 1500 ms
  !LDI     Loop_3_Ctr, Preset_15s                           ' Preset = 15 entspricht ca. 1,5 Sekunden
Lbl_loop_3_1:
  !LDI     Loop_2_Ctr, L2_Preset
Lbl_loop_2_1:
  !LDI     Loop_1_Ctr, L1_Preset
Lbl_loop_1_1:
  !DEC     Loop_1_Ctr
  !BRNE    Lbl_Loop_1_1
  !DEC     Loop_2_Ctr
  !BRNE    Lbl_Loop_2_1
  !DEC     Loop_3_Ctr
  !BRNE    Lbl_Loop_3_1

'Relais Ein (HIGH)
Portb.4 = 1

'Warte 500 ms
  !LDI     Loop_3_Ctr, Preset_05s                           ' Preset = 15 entspricht ca. 1,5 Sekunden
Lbl_loop_3_2:
  !LDI     Loop_2_Ctr, L2_Preset
Lbl_loop_2_2:
  !LDI     Loop_1_Ctr, L1_Preset
Lbl_loop_1_2:
  !DEC     Loop_1_Ctr
  !BRNE    Lbl_Loop_1_2
  !DEC     Loop_2_Ctr
  !BRNE    Lbl_Loop_2_2
  !DEC     Loop_3_Ctr
  !BRNE    Lbl_Loop_3_2

    'Relais Aus (Low)
Portb.4 = 0
Loop

End

Autor: Kluchscheißernder Nixwisser (kluchscheisser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Axel L. schrieb:

> Und wie lässt sich diese Kalibration einbinden?

Bitte schau auch mal ins Datenblatt des Controllers. Und auch mal bei 
Atmel nach einschlägigen AppNotes. Die AppNote AVR053 behandelt z.B. das 
Thema Oszillator & Calibration. Die AppNotes findest Du hier:
http://www.atmel.com/dyn/products/app_notes_v2.asp...

Desweiteren ist das Thema Calibration hier im Forum schon einigemale 
recht umfassend diskutiert worden. Vielleicht solltest Du Dich mal mit 
der Suchfunktion befassen.
http://www.mikrocontroller.net/search?query=calibr...

MfG

Autor: Axel L. (ligonap)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da wohl mein MOSFET beschlossen hatte sich zu verabschieden habe ich den 
IRF 3205 TO220 IR eingesetzt, aber es tut sich nach wie vor nichts.
Den Tiny kann ich ohne Probleme mit mySmartUSB auslesen und die 
bin-Dateien aus BasCom sowie die hex-Datein aus Studio4 brennen.
Ich habe an Pin 8 4,5V und GND an Pin 4. An Pin 2 ist der erste Pin des 
TO220 (Gate) angeschlossen. Zweiter Pin des TO220 ist ans Relais und 
dritter wiederum an GND angeschlossen.

Ich glaube, so langsam lasse es mit den µC und werde mich mal umschauen, 
wo man so etwas in Auftrag geben kann. Falls jemand eine Gute Adresse 
kennt, werde dankbar.

Autor: Kluchscheißernder Nixwisser (kluchscheisser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Axel L. schrieb:
> Da wohl mein MOSFET beschlossen hatte sich zu verabschieden habe ich den
> IRF 3205 TO220 IR eingesetzt, aber es tut sich nach wie vor nichts.
> Den Tiny kann ich ohne Probleme mit mySmartUSB auslesen und die
> bin-Dateien aus BasCom sowie die hex-Datein aus Studio4 brennen.
> Ich habe an Pin 8 4,5V und GND an Pin 4. An Pin 2 ist der erste Pin des
> TO220 (Gate) angeschlossen.

Warum testest Du nicht erstmal mit LEDs? Der FET als Relaistreiber ist 
doch beim Debuggen der Software eine zusätzliche Unsicherheit. Darum 
kannst Du Dich kümmern, wenn die Software zuverlässig läuft.

>  Zweiter Pin des TO220 ist ans Relais und
> dritter wiederum an GND angeschlossen.

Hast Du einen Widerstand (10k bis 20k) zwischen Gate und Source?
Wenn nicht, kann der FET bei hochohmigem AVR-Pin (während des 
Programmierens) floaten.

Hast Du eine Freilaufdiode parallel zur Relais-Spule?
Wenn nicht, dann zerstört die Selbstinduktionsspannung der Relaisspule 
den FET bereits beim ersten Ausschalten.

> Ich glaube, so langsam lasse es mit den µC und werde mich mal umschauen,
> wo man so etwas in Auftrag geben kann. Falls jemand eine Gute Adresse
> kennt, werde dankbar.

MfG

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Den Tiny kann ich ohne Probleme mit mySmartUSB auslesen und die
> bin-Dateien aus BasCom sowie die hex-Datein aus Studio4 brennen.

Mit der Option "Swap words" wird LSB und MSB im bin/hex vertauscht, wenn 
diese Einstellung nicht stimmt, dann sind die erzeugten Files für den µC 
völlig unbrauchbar.

Diese unbrauchbaren Files lassen sich aber trotzdem flashen, egal mit 
welchem Programm. Entscheidend ist hier nur die Firmware des Programmers 
und in welcher Reihenfolge der die Bytes des Files in den µC schreibt.

Manche Programmer benötigen gerade diesen Austausch, ob Dein myAVR 
ProgTool dazugehört, kann ich nicht sagen, das lässt sich aber von Dir 
leicht rausfinden, mach' 'nen Haken dort rein, wenn keiner drin ist. Ich 
habe für den STK500 ohne diese Option compiliert.

Der IRF3205 kann lt. DB bis zu 4V Gate Threshold Voltage haben, das ist 
nicht optimal, der vorherige Typ war besser. Hast Du kein Messgerät, mit 
dem Du ein kurzzeitiges Ansteigen der Spannung am Pin2 messsen kannst ?

Autor: Axel L. (ligonap)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kluchscheißender Consulter schrieb:
> Hast Du einen Widerstand (10k bis 20k) zwischen Gate und Source?
> Wenn nicht, kann der FET bei hochohmigem AVR-Pin (während des
> Programmierens) floaten.

Habe eine 10k Widerstand zwischen Gate (1. Kontakt am TO220) und Source 
(3. Kontakt am TO220).

>
> Hast Du eine Freilaufdiode parallel zur Relais-Spule?
> Wenn nicht, dann zerstört die Selbstinduktionsspannung der Relaisspule
> den FET bereits beim ersten Ausschalten.

Gleich zwei Stück. Eine befindet sich im Reed-Relais (COMUS) und zweite 
habe ich parallel zur ersten Diode und der Spule (zwischen Pin2 & Pin6 
des DIL14) angebracht.

Der Witz: Ich habe mal den Tiny aus seinem Sockel genommen und jedesmal, 
wenn ich die Sockelkontakte 2(zur Gate) und 8(VCC) kurz schließe, 
schaltet das Relais. Dies Kurzschließen sollte doch eigentlich der µC 
machen, oder?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja schon.
Häng aber trotzdem erst mal eine LED an.
Mit der testet es sich viel angenehmer.

Dein erstes Testprogramm könnte sein:
Port Pin mit der LED auf Ausgang konfigurieren. LED einschalten.

Dein nächstes Testprogramm
Selbiges wie oben, nur diesmal LED ausschalten


Damit kannst du unabhängig von irgendwelchen Rundherum Hardwareproblemen 
festellen, ob dein µC überhaupt arbeitet.

Autor: Axel L. (ligonap)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger schrieb:
> Ja schon.
> Häng aber trotzdem erst mal eine LED an.
> Mit der testet es sich viel angenehmer.

Habe ich gemacht. An Pin5 (PB0) eine LED und 1k Widerstand.

> Dein erstes Testprogramm könnte sein:
> Port Pin mit der LED auf Ausgang konfigurieren. LED einschalten.

Habe diesen Code auf den µC gebrannt.
.equ F_CPU= 1600000
.include "tn15def.inc"

; Spannung an PB anlegen.
ldi r16, 0xFF
out DDRB, r16  ; PORTB configured for output
ldi r16, 0xFF
out PORTB, r16 ; ausschalten

; LED an Pin 5 (PB0) einschalten
sbi PORTB, 0

Null Reaktion. LED leuchtet, wenn ich Pin8 & Pin5 am Sockel 
kurzschließe.

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mach' mal 'nen 10k von Pin 1 auf Pin 8 rein, möglicherweise kommt der µC 
nicht aus dem Reset.

Autor: Elektronix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auch wenn ich jetzt vielleicht in ein Fettnäpfchen treten sollte ... 
wäre es nicht, wie am Anfang von dem Thread schon mal genannt, einfach 
besser für diesen Zweck einen Tiny13 zu nehmen?
Für's erste wären die Probleme beim Einsatz von BASCOM behoben und man 
könnte sich in Ruhe auf das Schaltungslayout stürzen.

Autor: Axel L. (ligonap)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Elektronix schrieb:
> Auch wenn ich jetzt vielleicht in ein Fettnäpfchen treten sollte ...
> wäre es nicht, wie am Anfang von dem Thread schon mal genannt, einfach
> besser für diesen Zweck einen Tiny13 zu nehmen?
> Für's erste wären die Probleme beim Einsatz von BASCOM behoben und man
> könnte sich in Ruhe auf das Schaltungslayout stürzen.

War heute bei Conrad und habe mir zwei Tiny13 besorgt.
Folgendes Programm habe ich mit BasCom geschrieben und gebrannt.
$regfile = "attiny13.dat"
$crystal = 1170000
$hwstack = 16
$swstack = 0
$framesize = 24

'Relais an PB3(Pin2) und LED an PB0(Pin5)
Config Portb.3 = Output
Config Portb.0 = Output

'LED Ein (HIGH)
Portb.0 = 1

'Warte 1500 ms
Waitms 1500

'LED Aus (Low)
Portb.0 = 0

'Relais Ein (HIGH)
Portb.3 = 1

'Warte 500 ms
Waitms 500

'LED Ein (HIGH)
Portb.0 = 1

'Relais Aus (Low)
Portb.3 = 0

End

Meine Schaltung Klappt, juhu!!

Beim ersten Versuch bin ich von 9,6Mhz ausgegangen, aber Messungen 
ergaben für die 1,5sec ganze 12,3Sec. Dann habe ich den Wert auf 1,17Mhz 
reduziert und nun werden die Zeiten eingehalten. Läuft wunderbar.

Ein großes Danke an alle Helfenden. ;-)

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich hätte schon gerne wissen wollen, warum der Tiny15 nicht ging.

Daß es prinzipiell geht, war sowieso klar, aber das Forum inklusive 
meiner einer hat sich an der Diskussion beteiligt, weil wir den Fehler 
finden wollten.

Mit einem Tiny13 geht's natürlich auch, genauso eben wie's mit einem 
Tiny15 gegangen wäre, die Aufgabe ist für diese Bausteine völlig 
anspruchslos.

Jetzt nicht zu wissen was der Fehler war, ist irgendwie 
unbefriedigend...

Hast Du zum Schluss wenigstens den 10k Widerstand von VCC auf Reset dran 
gemacht ?

Autor: Axel L. (ligonap)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
MWS schrieb:
> Also ich hätte schon gerne wissen wollen, warum der Tiny15 nicht ging.
>
> Daß es prinzipiell geht, war sowieso klar, aber das Forum inklusive
> meiner einer hat sich an der Diskussion beteiligt, weil wir den Fehler
> finden wollten.
>
> Mit einem Tiny13 geht's natürlich auch, genauso eben wie's mit einem
> Tiny15 gegangen wäre, die Aufgabe ist für diese Bausteine völlig
> anspruchslos.
>
> Jetzt nicht zu wissen was der Fehler war, ist irgendwie
> unbefriedigend...
>
> Hast Du zum Schluss wenigstens den 10k Widerstand von VCC auf Reset dran
> gemacht ?

Zwischen Gate und Source ist ein 10k Widerstand. Das war ein sehr 
sinnvoller Tipp. Ich habe mal meine Platine an diese Antwort gehängt. 
Ok, nicht gerade professionell, aber für mich reicht es völlig.

Warum der ATtiny15L nicht ging, trotz fehlerfreiem Auslesen/Brennen, ist 
mir auch rätselhaft. Denn Tiny13 habe ich gebrannt, auf die Platine 
gesteckt und er lief. Der Tiny15 ging sofort in die Ablage M.

Interessant finde ich auch, dass man zum Preis von einem Tiny15 zwei 
Tiny13 bekommt.

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Zwischen Gate und Source ist ein 10k Widerstand.

Das ist zwar auch sinnvoll, aber mein Vorschlag war beim Tiny15 zwischen 
VCC und RESET-Pin (PB5, Pin 1) einen 10k zu setzen, denn möglicherweise 
befand sich der Tiny15 laufend im Reset, das würde das Betriebsverhalten 
erklären, gleichwohl er sich programmieren ließ.

Beim Programmieren zieht der Programmer den RESET Pin auf Low, der muss 
aber im laufenden Betrieb auf High liegen.

> Interessant finde ich auch, dass man zum Preis von einem Tiny15 zwei
> Tiny13 bekommt.

Der  Tiny15, wie auch der Tiny25 haben als Besonderheit eine High Speed 
PLL, die mit 25.6MHz, resp. 64MHz läuft, damit sind sehr schnelle PWMs 
möglich. Diese Eigenschaft hat der Tiny13 nicht, da Du die aber auch 
nicht brauchst, wäre der Tiny13 von Haus aus die bessere Wahl gewesen.

Aber dennoch, der Tiny15 hätte ganz definnitiv laufen müssen.

Autor: conquistador (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der code funzt auf dem tiny15.
Da ich blutiger Anfänger bin habe ich das in bascom reingesteckt, und 
das hex file über ponyprog über einen paralleladapter den ich hier 
gefunden habe:
http://www.dieelektronikerseite.de/uC%20Ecke/Lecti...
aufgespielt.
Das einzige Problem ist: die Zeiten sind viel länger als 1.5 s. Ich habe 
dann mit anderen Werten experimentiert und mal gestoppt,  2000 ergibt 
eine Zeit  von 4s und 4000ms ergibt ganze 14 s in der Realität. 
Allerdings muß ich dazusagen, daß ich die ersten Zeilen aus dem Basic 
code gelöscht habe, weil mir nicht klar war, warum ich die interne 
Taktfrequenz des tiny15 verändern soll.

folgender code funzt definitiv auf dem tiny15
 $regfile = "ATtiny15.DAT"
$tiny

  $noramclear
$hwstack = 0
$swstack = 0
$framesize = 0


'Relais an PB4
Config Portb.4 = Output
 Do

'Warte 1500 ms
Waitms 4000

'Relais Ein (HIGH)
Portb.4 = 1

'Warte 500 ms
Waitms 2000

'Relais Aus (Low)
Portb.4 = 0
Loop


End

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.