Tiny 45v und der Timer1.....

Cassio

Aktives Mitglied
29. Okt. 2008
4.027
17
38
Region Hannover
Sprachen
  1. BascomAVR
Hallo zusammen!

Ich ärgere mich gerade mal wieder über den Tiny45v.... :mad:

Das erste Mal hatte ich diese ollen Dinger in die Ecke gelegt als ich (leider zu spät) festgestellt hatte, dass der Timer1 kein 16bit Timer ist.
Eigentlich sollten die guten Stücke in meinen RC5-Ferbedienungen eingesetzt werden..... mangels 16bit Timer ist dies aber nicht möglich.

Nun habe ich mir gedacht....... Zum Empfang eines RC5-Signals benötige ich den 16bit Timer ja nicht und da mein letztes Projekt (230V-Dimmer für die Deckenlampe) super funktioniert, benutze ich die Tiny`s einfach als "ferngesteuerte Dimmer". :)

Gesagt, getan! Schaltplan erstellt, Layout der Platine gezeichnet, Platine geäzt und gebohrt, alle Teile eingelötet und....... jetzt kostet mich dieser olle Timer1 wieder Nerven. :mad:

Kurz mal zum Programm....
Der Timer0 wird für den RC5-Empfang benötigt und kann daher nicht verwendet werden.
Der INT0 überwacht die Nulldurchgänge der Sinusspannung und der Timer1 (8bit) soll meinen Opto-Triac (MOC 3021) steuern.

Das Programm habe ich soweit auch fertig. Leider bekomme ich nun die Fehlermeldung:
"Error 46" Assignment error (Timer1:0 Licht:2)"

Die Variable Licht wird per Fernbedienung geändert und liefert somit den "Verzögerungswert" für das Zünden des MOC 3021....

Die ISR sieht dafür so aus:
Code:
Timer_start:
Portb.1 = 0
Start Timer1
Timer1 = Licht
Return

Das Problem liegt einfach beim Timer1 !

Ich habe mal gelesen, dass BASCOM beim Timer1 automatisch von einem 16bit Timer ausgeht. Dies ist ja nun beim Tiny45v nicht der Fall.
Es spielt auch keine Rolle, ob ich die Variable Licht als Byte oder Word dimensioniere.

Alles was ich möchte, ist einen Overflow des Timer1 mit variablen Werten erzeugen.

Kann mir mal einer der ASM-User einen Tipp geben, wie ich das nun einstellen muss? :rolleyes:

Den Timer1 habe ich so konfiguriert:
Code:
Config Timer1 = Timer , Prescale = 64
' 256 x (64 / 1000000)=  16,384ms
' 10 ms = 156,25bit bis zum OVFL

On Timer1 Triac_zuenden
Enable Timer1


Wäre doch ärgerlich, wenn man die Tiny45 nicht einmal dafür benötigen könnte. ;)


Schöne Grüße,
Cassio
 
Hallo @C....,

der Attiny45 hat ein TCCR1-Register, zwei TCCR0-Register, also mal probieren:


.equ OVF1addr = 0x0004 ; Timer/Counter1 Overflow

.....
.equ TOIE1 = 2 ; Timer/Counter1 Overflow Interrupt Enable
.....
ldi temp, 0x02 ;Interruptausgabe mit TOIE1 enablen
out TIMSK, temp ;hier steht oft Wert 01, muß aber 02 heißen,
; ; da Bit 1 nicht immer definiert
.......

.equ TCCR1 = 0x30

Hast Du das Include-File, kannst Du mal reinschauen.

Gruß von Oskar01
 
Hallo Oskar!

Danke dir, für die schnelle Info.

Da ich aber ein BASCOM-Kind bin und ich mit ASM immer noch so meine Schwierigkeiten habe, hilft es mir nur bedingt weiter. ;)

Ich habe inzwischen mal folgendes ausprobiert....

Code:
Tccr1 = &B00000100                      ' Prescale 64
' 256 x (64 / 1000000)=  16,384ms
' OCR2 Auflösung: 0,064ms
' 10 ms = 156,25bit bis zum OVFL

On Timer1 Triac_zuenden
Enable Timer1

Stimmt das, mit den Prescale 64 ? :confused:


In der ISR zum laden des variablen Timerwertes habe ich folgendes eingetragen:

Code:
Timer_start:
Portb.1 = 0
Start Timer1
Tcnt1 = Licht
Return

Durch das "Tcnt1 = Licht" bekomme ich nun keine Fehlermeldung mehr.

Allerdings schreibt BASCOM nun immer noch:
Error : 202 Line : 151 .EQU not found, probably using functions that are not supported by the selected chip [TCCR1B]
Error : 202 Line : 160 .EQU not found, probably using functions that are not supported by the selected chip [TCCR1B]
Error : 202 Line : 160 .EQU not found, probably using functions that are not supported by the selected chip [TCCR1B]

Er meckert nun noch über meine Anweisungen für das Starten bzw. Stoppen von Timer1. :confused:


Hilft dir das weiter?
Ich hoffe es! ;)

Schöne Grüße,
Cassio
 
Hallo !

Nun werde ich mal alle Daten am Stück hier einstellen...

Auf den angehängten Bildern ist einmal der Schaltplan zu sehen,
dann die Platine von der Bestückungsseite und
die Platine von der Kontaktseite.


Den vorläufigen Code gibt es hier:
Code:
' IR-Dimmer für 230V AC

$regfile = "attiny45.dat"
$crystal = 1000000

$hwstack = 32                                               ' default use 32 for the hardware stack
$swstack = 10                                               ' default use 10 for the SW stack
$framesize = 40

' ================================================
' Bestimme die Ein und Ausgänge
Ddrb = &B0_1010                                             '1 ist Ausgang 0 ist Eingang
Portb = &B1_0101                                            'auf Hi oder Low setzen

' ================================================
' INT0 dient zur Erfassung des Nulldurchganges
Config Int0 = Rising
On Int0 Timer_start
Enable Int0

' ================================================
' Konfiguriere den Timer

' Timer1 für den 230V Dimmer
'Config Timer1 = Timer
Tccr1 = &B00000100                                          ' Prescale 64
' 256 x (64 / 1000000)=  16,384ms
' OCR2 Auflösung: 0,064ms
' 10 ms = 156,25bit bis zum OVFL

On Timer1 Triac_zuenden
Enable Timer1

' ================================================
' Globale Interrupts einschalten
Enable Interrupts


' ================================================
' IR-Empänger einstellen
Config Rc5 = Pinb.4


' ================================================
' Bestimme die Variablen
Dim Ir_adr As Byte , Cmd As Byte                            ' Variablen für den RC5-Empfang

Dim Licht As Byte , Licht_sp As Byte                        ' Variablen für die Beleuchtung


' ================================================
' Bestimme die Constanten
Const Hell = 254
Const Dunkel = 98

' IR-Code-Adressse
Const Adr_code = 05
Const Cmd_nacht = 17
Const Cmd_tag = 16
Const Cmd_hell = 32
Const Cmd_dunkel = 33


' ################################################
' Anfangswerte:

' Anfangshelligkeit vorgeben
' 60% Helligkeit
Licht = 191
Licht_sp = Licht


' ################################################
' #                                              #
' #---------------Arbeitsschleife----------------#
' #                                              #
' ################################################
Do
' ================================================
' IR Empfang starten
Gosub Get_ir

' ================================================
' Licht ein- bzw. ausschalten
If Ir_adr = Adr_code And Cmd = Cmd_tag Then
   If Licht > 180 Then
   Licht = Dunkel
   Waitms 250
   Else
   Licht = Hell
   Waitms 250
   End If
Else
End If

' ================================================
' Licht per Taster ein- bzw. ausschalten
If Pinb.0 = 0 Then
   If Licht > 180 Then
   Licht = Dunkel
   Waitms 250
   Else
   Licht = Hell
   Waitms 250
   End If
Else
End If

' ================================================
' Licht heller dimmen
If Ir_adr = Adr_code And Cmd = Cmd_hell Then
   If Licht < 250 Then
   Licht = Licht + 5
   Else
   Licht = Hell
   End If
Else
End If

' ================================================
' Licht dunkler dimmen
If Ir_adr = Adr_code And Cmd = Cmd_dunkel Then
   If Licht > 108 Then
   Licht = Licht - 5
   Else
   Licht = Dunkel
   End If
Else
End If


Loop


' ################################################
' #                                              #
' #----------------Subroutinen-------------------#
' #                                              #
' ################################################
Get_ir:
' IR-Signal empfangen
Getrc5(ir_adr , Cmd)
Reset Cmd.7
Return


' ################################################
' Beim Auslösen des INT0 wird die Verzögerung (Phasenanschnitt) gestartet
Timer_start:
Portb.1 = 0
Start Timer1
Tcnt1 = Licht
Return


' ################################################
' Zünden  des Triacs
Triac_zuenden:
Stop Timer1
Portb.1 = 1
Return

End


Mit dem Tccr1 und Tcnt1 scheine ich auf dem richtigen Weg zu sein, damit BASCOM den Timer1 auch richtig konfiguriert.
Leider habe ich keine Ahnung von den ASM-Anweisungen und darum.... :eek:

Schöne Grüße,
Cassio
 

Anhänge

  • 230V-IR-Dimmer-21-B1.GIF
    230V-IR-Dimmer-21-B1.GIF
    21,7 KB · Aufrufe: 30
  • 230V-IR-Dimmer-21-K2.GIF
    230V-IR-Dimmer-21-K2.GIF
    17,4 KB · Aufrufe: 20
  • 230V-IR-Dimmer.JPG
    230V-IR-Dimmer.JPG
    80,9 KB · Aufrufe: 58
Hallo Cassio,


wenn du das FuseBit CKDIV8 nicht programmiert hast (=1), dann würde der Prescaler nicht stimmen, ich vermute aber, dies hast du berücksichtigt...
Code:
' Timer1 für den 230V Dimmer
'Config Timer1 = Timer

[COLOR=DarkRed]TCCR1 = &B00000100     ' Prescaler 64, wenn CKDIV8 programmiert
[COLOR=RoyalBlue]TCCR1 = &B00000111     ' Prescaler 64, wenn CKDIV8 nicht programmiert[/COLOR]
[/COLOR]
' 256 x (64 / 1000000)=  16,384ms
' OCR2 Auflösung: 0,064ms
' 10 ms = 156,25bit bis zum OVFL

On Timer1 Triac_zuenden
Enable Timer1
Du kannst den Reload-Wert für einen Timer auch schnell mal mit dem kleinen Tool AVR-Timer-Calculator überprüfen (siehe Screenshot im Anhang, Beispiel für 10ms Timer-Interrupt-Zeit).


Durch das "Tcnt1 = Licht" bekomme ich nun keine Fehlermeldung mehr.

Allerdings schreibt BASCOM nun immer noch:
Error : 202 Line : 151 .EQU not found, probably using functions that are not supported by the selected chip [TCCR1B]
Error : 202 Line : 160 .EQU not found, probably using functions that are not supported by the selected chip [TCCR1B]
Error : 202 Line : 160 .EQU not found, probably using functions that are not supported by the selected chip [TCCR1B]

Er meckert nun noch über meine Anweisungen für das Starten bzw. Stoppen von Timer1.

Ich programmiere selber nicht in Bascom, kann jetzt also hier eventuell nicht so gut weiterhelfen. Das Register TCCR1B gibt es beim ATtiny45 nicht, Bascom möchte hier anscheinend bei Start und Stop auf das Register zugreigen.

Du kannst den Timer auch starten, wenn du den Prescaler auf deinen gewünschten Wert setzt. Stoppen kannst du den Timer, wenn du den Prescaler abschaltest, also auf 0 setzt. Die untersten 4 Bits im Register TCCR1 definieren den Prescaler.

Code:
TCCR1 = &B00000100     ' Timer1 wird gestartet
TCCR1 = &B00000000     ' Timer1 wird gestoppt


Grüße,
Dirk
 

Anhänge

  • timer_10ms.png
    timer_10ms.png
    19,7 KB · Aufrufe: 16
Hallo Dirk!

Du meinst bestimmt, ob ich das FUSEBIT H gesetzt habe: Teile die Clock durch 8. Das habe ich natürlich gemacht, sonst würden die 1MHz ja nicht stimmen. ;)

Ich hatte auch nur überlegt, wie man ohne den Befehl "Start TimerX" bzw. Stop "TimerX" auskommt. Letztlich erzeugt ja genau deshalb BASCOM die Fehlermeldungen.

Danke für den Hinweis mit den Prescaler!

Dann muss ich nur "TCCR1 = &B00000100" angeben und schon rennt der Timer1 mit Prescaler = 64 los und mit "TCCR1 = &B00000000" wird der Timer dann wieder gestoppt.
Sehr fein!

Ich frage mich nun, ob der Befehl "On Timer1 Triac_zuenden" funktioniert, oder ob ich da auch auf die ASM-Anweisungen zurückgreifen muss. :confused:

Ich kann es aber auch erst mal so probieren....


Die Fehlermeldungen sind jedenfalls schon mal verschwunden. :) Danke! :flowers:


Dann sehen die ISR`s jetzt so aus:
Code:
' ################################################
' Beim Auslösen des INT0 wird die Verzögerung (Phasenanschnitt) gestartet
Timer_start:
Portb.1 = 0
Tccr1 = &B00000100
Tcnt1 = Licht
Return


' ################################################
' Zünden  des Triacs
Triac_zuenden:
Tccr1 = &B00000000
Portb.1 = 1
Return


Ach so....
Wenn der Timer1 gleich beim Einstellen des Prescalers los läuft, dann kann ich mir ja die Anweisung im Rumpf sparen, oder?
Ich meine diese hier:
Code:
' ================================================
' Konfiguriere den Timer

' Timer1 für den 230V Dimmer
'Config Timer1 = Timer
Tccr1 = &B00000100                                          ' Prescale 64
' 256 x (64 / 1000000)=  16,384ms
' OCR2 Auflösung: 0,064ms
' 10 ms = 156,25bit bis zum OVFL

On Timer1 Triac_zuenden
Enable Timer1

Dort kann das "Tccr1 = &B00000100" doch entfallen, denn er soll ja gar nicht gleich loslaufen... sondern erst nach Erreichen des ersten Nulldurchganges. Dies wird dann ja in der ISR: "Timer_start" erledigt.

Ich werde es sonst nachher einfach mal ausprobieren.


Danke erst mal und schöne Grüße,
Cassio


PS: Das nächste mal werde ich wieder meinen geliebten Tiny2313 benutzen, der ist obendrein auch noch günstiger. ;)
 
Hallo Dirk!

Noch mal etwas anderes......
Aber da wir gerade bei den ASM-Anweisungen sind. ;)

Du kennst doch bestimmt die Anweisungen:

' ================================================
'Gimsk.5 = 1" ' PinChange enable

'Pcmsk = &B00010000 ' PB4 change aktiv
' ================================================

Ich habe diese Zeilen mal entdeckt (weiß nicht mehr wo) und fand die Anweisung recht interessant.

Erste Frage:
Gilt dieses Erkennen des PinChange nur für INT0, INT1 und die PCIN`s ?
Oder kann ich damit jeden beliebigen Pin überwachen?

Zweite Frage:
Worauf bezieht sich bei "Gimsk.5 = 1" das ".5" ?

Dritte Frage:
Bei "Pcmsk = &B00010000" wird der vierte Eingang zur Überwachung angegeben. Wodurch wird dann PINB.4 zugeordnet und nicht z.B. PIND.4 (bei anderen µC´s), oder liegt es doch an den PCINT`s?
Der PCINT4 (beim Tiny45) wäre auch "zufällig" PINB.4!


Danke schon mal, für`s Nachdenken und Niederschreiben. ;)

Schöne Grüße,
Cassio
 
Hallo Cassio,

wenn du einen Systemtakt von 1MHz hast, dann stimmt der Prescaler nicht.

Code:
TCCR1 = &B00000100 ' aktiviert den Prescaler 8

TCCR1 = &B00000111 ' aktiviert den Prescaler 64
siehe Anhang.

Ach so....
Wenn der Timer1 gleich beim Einstellen des Prescalers los läuft, dann kann ich mir ja die Anweisung im Rumpf sparen, oder?

Ja genau, der Timer soll ja hier noch nicht laufen.

Du solltest hier ...
Code:
' ################################################
' Beim Auslösen des INT0 wird die Verzögerung (Phasenanschnitt) gestartet
Timer_start:
Portb.1 = 0
[COLOR=RoyalBlue]Tccr1 = &B00000100
Tcnt1 = Licht[/COLOR]
Return
... noch den Timer/Counter1 vor Start des Timers initialisieren, nicht danach. In deinem Fall wird es zwar nichts ausmachen, da der Timer ja immer gleich nach Overflow gestoppt wird und sich ja somit nicht direkt vor dem nächsten Überlauf besfindet. Aber man beugt so Timingfehlern vor, die oft sehr schwer zu finden sind.

Grüße,
Dirk
 

Anhänge

  • prescaler.png
    prescaler.png
    40,4 KB · Aufrufe: 10
  • prescaler2.png
    prescaler2.png
    4,1 KB · Aufrufe: 5
wenn du einen Systemtakt von 1MHz hast, dann stimmt der Prescaler nicht.

Hallo Dirk!

Na super, dann habe ich es genau falsch herum verstanden....

Bei den Fusebits habe ich den Systemtakt auf 8MHz, habe aber den Teiler eingeschaltet!

Dann muss ich also in den ISR`s doch:
"TCCR1 = &B00000111 ' aktiviert den Prescaler 64"
benutzen.

OK, wird sofort geändert! ;)



den Timer/Counter1 vor Start des Timers initialisieren, nicht danach.

Kein Problem, dann ändere ich das in:
Code:
Timer_start:
Portb.1 = 0
[COLOR="Blue"]Tcnt1 = Licht
Tccr1 = &B00000100
[/COLOR]Return

Also erst den Wert zuweisen und dann mittels setzen des Prescalers den Timer starten.
Klingt irgendwie auch sinnvoller.....
Ich hatte nur gedacht, dass beim starten des Timers der zuvor geladene Wert durch das intialisieren wieder gelöscht wird und das darum mir alle bekannten BASCOM Programme immer in dieser Reihenfolge geschrieben sind.....


Dann werde ich gleich mal die Änderungen einpflegen..... Kann aber später erst den Praxistest durchführen. ;)


Schöne Grüße,
Cassio
 
Hallo Cassio,

' ================================================
'Gimsk.5 = 1" ' PinChange enable

'Pcmsk = &B00010000 ' PB4 change aktiv
' ================================================


Erste Frage:
Gilt dieses Erkennen des PinChange nur für INT0, INT1 und die PCIN`s ?
Oder kann ich damit jeden beliebigen Pin überwachen?

Zweite Frage:
Worauf bezieht sich bei "Gimsk.5 = 1" das ".5" ?

Dritte Frage:
Bei "Pcmsk = &B00010000" wird der vierte Eingang zur Überwachung angegeben. Wodurch wird dann PINB.4 zugeordnet und nicht z.B. PIND.4 (bei anderen µC´s), oder liegt es doch an den PCINT`s?
Der PCINT4 (beim Tiny45) wäre auch "zufällig" PINB.4!

zur ersten Frage:
Man kann die zu überwachenden Portpins im Register PCMSK einstellen, beim ATtiny45 sind das die Pins PB0 bis PB5. Siehe auch Anhang

zur zweiten Frage:
Setzt man das Bit5 im Register GIMSK (Bit PCIE, PinChangeInterruptEnable) wird der entsprechende Interrupt für PinChange freigegeben.

zur dritten Frage:
Das ist von Mikrocontroller zu Mikrocontroller unterschiedlich. Es gibt bestimmte festgelegte Pins, die man für PinChangeInterrupts verwenden kann. Bei größeren Mikrocontrollern, die mehr als 8 PinChange-Pins unterstützen, gibt es mehrere PCMSK-Register.

Grüße,
Dirk
 

Anhänge

  • pinchange_pcmsk.png
    pinchange_pcmsk.png
    4,7 KB · Aufrufe: 8
  • pinchange_gimsk.png
    pinchange_gimsk.png
    4 KB · Aufrufe: 10
Hallo Dirk!

Danke schön!
Und wieder etwas dazu gelernt! ;)

Werde das demnächst mal ausprobieren.....
Vielleicht kann ich es ja z.B. bei meiner Fernbedienung benutzen (oder bei anderen Geräten mit Batterie), um den Pinstatus abzufragen und den µC aus dem IDLE-Modus holen....


Schöne Grüße,
Cassio
 
Hallo !

Kurzer Zwischenstand.....

Der IR-Dimmer mit dem Tiny45v läuft Dank der Hilfe von Dirk soweit. :flowers:


Etwas stutzig machen mich zwar immer noch die Timerwerte, aber ich habe inzwischen die Zeitangaben von Dunkel bis Hell ermittelt.

Bei meinem anderen Dimmer (Deckenlampe) mit dem ATMega8 waren die Werte wie errechnet.....
Bei 1MHz Systemtakt und einem Prescaler von 64, musste ich den Timer von 98 bis 254 laden.

Beim Tiny45v klappt das damit nicht.... Der Startwert 98 geht in Ordnung, aber der maximale Wert ist 220. Alle größeren Werte verursachen natürlich Störungen.
Wenn ich mir den Triac-Ausgang mit dem Scope ansehe, dann ist die Sinuswelle bei 220 auch zu 99% durchgeschaltet.
Finde ich zwar merkwürdig...... ist aber so.


Weil der Speicher des Tiny45v noch jede Menge Platz hat dachte ich mir, ich lege feste Helligkeitswerte an, die dann mit den Tasten 0-9 auf der Fernbedienung direkt abgerufen werden können.
Diese Funktion kenne ich von meinen B&O Fernbedienungen und ich finde sie sehr praktisch.


Also habe ich eine Datenliste mit festen Dimmerwerten ins EEprom gelegt.
Code:
' Lichtwertliste im Eeprom
$eeprom

Lichtwert:
Data 98 , 112 , 124 , 137 , 150 , 163 , 176 , 189 , 202 , 220
$data

Da beim RC5-Code das Kommando gleich der gedrückten Zahl ist (Zahl 0 = Kommando 0 oder Zahl 9 = Kommando 9), möchte ich nur noch per Lookup den zugehörigen Datenwert auslesen.
Code:
' Festwerte von 0-9
If Ir_adr = Adr_code And Cmd < 10 Then
Licht = Lookup(cmd , Lichtwert)
Waitms 250
Else
End If

Diese Methode habe ich bei anderen Programmierungen schon öfter verwendet und sie funktionierte auch immer tadellos.

Leider habe ich diesmal Probleme damit....
Es werden scheinbar nicht die richtigen Daten ausgelesen. :confused:

Wie in der Lichtwert-Liste zu sehen, werden die Zahlen immer höher und damit die Lampe auch immer heller.....
Wenn ich nun die Zahlen an der Fernbedienung von 1-9 aufsteigend durchgehe, dann müsste die Lampe auch jedesmal ein bisschen heller werden.
Es hat aber in der Praxis eher den Anschein, als würden alle Werte durcheinander sein. ;)

Taste 1 startet viel zu hell.
Taste 2 ist heller als 1
Taste 3 ist genauso hell wie 1
Taste 4 ist dunkler als 3 (bzw. 1)
Taste 5 macht volle Helligkeit
Taste 6 macht die Lampe aus
Taste 7 ist etwas heller als 3 (bzw. 1)
Taste 8 macht auch die Lampe aus
Taste 9 ist genauso hell wie 7
Taste 0 ist genauso hell wie 4

Ich weiß nicht, wo ich den Fehler suchen soll.....
Hat jemand eine Idee?

Ach so....
Ich habe es auch mit RESTORE und READ probiert.....
Der Effekt ist aber der Selbe. :mad:

Auch habe die Datenliste der Helligkeitswerte in den Flash geladen und nicht ins EEprom..... Bringt leider auch keine Änderung.

Bis jetzt hatte ich jedenfalls mit dem Lookup-Befehl keine Probleme und würde es auch gern dabei belassen.

Es muss doch eine Erklärung für das ganze Durcheinander geben.....


Ich danke schon mal, für erste Überlegungen!

Cassio
 
Hallo !

Also es muss etwas mit dem Laden der Werte aus der DATA-Zeile zu tun haben...


Ich habe mal auf gaaaaanz simple Weise folgendes ausprobiert:
Code:
' Festwerte von 0-9
If Ir_adr = Adr_code And Cmd < 10 Then
Select Case Cmd
Case 0 : Licht = 98
Case 1 : Licht = 112
Case 2 : Licht = 124
Case 3 : Licht = 137
Case 4 : Licht = 150
Case 5 : Licht = 163
Case 6 : Licht = 176
Case 7 : Licht = 189
Case 8 : Licht = 202
Case 9 : Licht = 220
End Select

Waitms 250
Else
End If

Tja und das funktioniert einwandfrei! :D

Somit wäre zwar die Funktion fertig integriert, aber das Problem mit dem Laden der Werte aus der DATA-Zeile beschäftigt mich ja nun doch. ;)


Soweit erst mal, von der Front.....

Cassio
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)