Forum: Mikrocontroller und Digitale Elektronik Tasten abfragen am ATTINY13 mit Assembler


von minimaxus (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich möchte am Port B3 und B4 (ATTINY13 gelegene Tasten abfragen und am 
selben Port B0, B1, B2 an Leds ausgeben.Mit dem kleinen Programm komme 
ich nicht weiter.
Ich kann zwar "Pullup- Spannung" messen, aber die "Auswertung" klappt 
nicht.
Wo mache ich etwas falsch?
Vieln Dank Minimaxus

von Karl H. (kbuchegg)


Lesenswert?

Erst mal poste deinen Quelltext nicht als Datei mit der Endung txt.
Nimm die Endung, die dein Programmtext auch wirklich hat. Das Forum 
erkennt diese und aktiviert dann dafür das Syntax-Highlighting.

Zweitens darfst du so kleine Text-Fuzzelchen gerne auch direkt 
einbetten. Die richtigen Tags benutzen (welche es gibt, steht direkt 
über der Eingabebox des Forums unter "Formatierung") und auch dann gibts 
ein Syntax-Highlighting.
1
Start:
2
   ldi r16,&B00111     'PB4, PB3 als Eingang;   PB2, PB1, PB0 als Ausgang festgelegt
3
   Out Ddrb , R16
4
5
   ldi r16,&B11000     'Pullup für PB3 und PB4 einschalten
6
   Out Portb , R16
7
8
9
10
Loop:
11
    in r16,Pinb        'Taste an PB4 und PB3
12
    Out Portb , R16    'Ausgabe
13
rjmp loop              'Schleife

So, und jetzt schaun wir uns mal an, was du da geschrieben hast :-)

: Bearbeitet durch User
von Karl H. (kbuchegg)


Lesenswert?

Karl Heinz Buchegger schrieb:

>
1
> Loop:
2
>     in r16,Pinb        'Taste an PB4 und PB3
3
>     Out Portb , R16    'Ausgabe
4
> rjmp loop              'Schleife
5
>

Ja, schon.
Aber was erwartest du dir davon?

die Bits von den Bitstellen 3 bzw. 4 wandern ja nicht irgendwie magisch 
an die Bitpositionen 0 und 1, so dass du sie dann an der Ausgabe siehts. 
Da ist weit und breit von einer 'Auswertung' nichts zu sehen!

Schieb mal das, was du vom Pin Register bekommst um 3 Stellen nach 
rechts, denk drann, dass du für die Ausgabe auf das PortRegister die 
Bitpositionen 3 und 4 auf 1 belassen musst (damit die Pullup auch 
weiterhin aktiv bleiben) und erst dann gibst du am Port aus.
1
 vom Pin Register    +---+---+---+---+---+---+---+---+
2
                     | . | . | . | x | y | . | . | . |
3
                     +---+---+---+---+---+---+---+---+
4
5
 Verschieben                       o   o
6
                                   |   |
7
                                   |   +-----------+
8
                                   +-----------+   |
9
                                               |   |
10
                                               v   v
11
12
                     +---+---+---+---+---+---+---+---+
13
                     | . | . | . | . | . | . | x | y |
14
                     +---+---+---+---+---+---+---+---+
15
16
                     +---+---+---+---+---+---+---+---+
17
 die 1 Bits für      | . | . | . | 1 | 1 | . | x | y |
18
 die Pullups noch    +---+---+---+---+---+---+---+---+
19
 ergänzen
20
21
                                   ||
22
                                   ||
23
                                  \  /
24
                                   vv
25
26
                            am Port ausgeben

oder benutze, wie die meisten, die für Bitoperationen vorgesehenen 
Befehle zum Bit-setzen, Bit-löschen, Bit-abfragen

AVR-Tutorial

: Bearbeitet durch User
von Karl H. (kbuchegg)


Lesenswert?

Wenn du mit deinem Programm auf das Beispiel im Tutorial anspielst
1
.include "m8def.inc"
2
 
3
         ldi r16, 0xFF
4
         out DDRB, r16     ; Alle Pins am Port B durch Ausgabe von 0xFF ins
5
                           ; Richtungsregister DDRB als Ausgang konfigurieren
6
         ldi r16, 0x00
7
         out DDRD, r16     ; Alle Pins am Port D durch Ausgabe von 0x00 ins
8
                           ; Richtungsregister DDRD als Eingang konfigurieren
9
 
10
         ldi r16, 0xFF     ; An allen Pins vom Port D die Pullup-Widerstände
11
         out PORTD, r16    ; aktivieren. Dies geht deshalb durch eine Ausgabe
12
                           ; nach PORTD, da ja der Port auf Eingang gestellt ist.
13
loop:
14
         in r16, PIND      ; an Port D anliegende Werte (Taster) nach r16 einlesen
15
         out PORTB, r16    ; Inhalt von r16 an Port B ausgeben
16
         rjmp loop         ;  zu "loop:" -> Endlosschleife

Das funktioniert deshalb, weil dort die Taster am Port D hängen und die 
LED am Port B UND weil die Taster an genau denselben Bitnummern der 
jeweiligen Ports hängen. D.h. am Bit 0 vom Port D hängt ein Taster und 
am korrespondieren Bit 0 vom Port B hängt die zugehörige LED.

Deshalb kann man das von PIND gelesene an PORTB ausgeben und so den 
Zustand des Tasters an die LED spiegeln.

Aber den Fall hast du nicht. Du hast ganz andere 
Hardware-Voraussetzungen. Insbesondere hast die diese 
Bit-'Übereinstimmung' an 2 verschiedenen Ports nicht.

von Peter D. (peda)


Angehängte Dateien:

Lesenswert?

In C würde man einfach schreiben:
1
#include "sbit.h"
2
3
int main()
4
{
5
  PORT_B3 = 1;
6
  PORT_B4 = 1;
7
  DDR_B0 = 1;
8
  DDR_B1 = 1;
9
  while(1){
10
    PORT_B0 = PIN_B3;
11
    PORT_B1 = PIN_B4;
12
  }
13
}

Das ganze Bit-Rumgewurstel macht dann der Compiler für Dich.

: Bearbeitet durch User
von Rolf H. (flash01)


Lesenswert?

Hallo Karl Heinz Buchegger,

ich habe mir über diesen Code so meine Gedanken gemacht.
Gehen wir mal davon aus, ich hätte nur einen Tiny13...es muß doch
einen Weg geben das mit den kleinen zu realisieren.
Die beiden Tasten hängen an PB3 + PB4, 2 LEDs an PB0 + PB1

Die Pegel an PB3/PB4 einlesen.

Jetzt mit einem Trick nach PB1/PB0 verschieben.

Zum Schluss ausgeben.

Das interessiert mich mal. Werde meine Hardware mit den Tiny13 
aktivieren.

Grüße

Rolf

von spess53 (Gast)


Lesenswert?

Hi

>Jetzt mit einem Trick nach PB1/PB0 verschieben.
1
    in r16,Pinb            ;'Taste an PB4 und PB3
2
    lsl r16                ; ein Bit nach links
3
    swap r16               ; Nibble tauschen
4
    ori r16, 1<<PB4|1<<PB3 ; Pull-Up
5
    out Portb , R16        ;'Ausgabe

MfG Spess

von Peter D. (peda)


Lesenswert?

Oder als Bits:
1
        sbis    pinb, 3
2
        cbi     portb, 0
3
        sbic    pinb, 3
4
        sbi     portb, 0
5
        sbis    pinb, 4
6
        cbi     portb, 1
7
        sbic    pinb, 4
8
        sbi     portb, 1

von Rolf H. (flash01)


Lesenswert?

Hallo Spess,
danke für Deine Nachricht!

Werde das mal durcharbeiten..swap ist mir ja ganz was Neues.
(aah, hier steht "vertausche die beiden Hälften des Zielreg. also r16)
Bin die Zeit nicht untätig gewesen.
Beschäftige mich mit den erweiterten Betriebsarten von Timer1
Es ist ja ein Wahnsinn was sich mit den WGM13 bis 10 alles anstellen
läßt.

Werde den Code für Interessierte einsetzen.

Grüße

Rolf

von Rolf H. (flash01)


Lesenswert?

Peter Dannegger schrieb:
> Oder als Bits:
>
1
>         sbis    pinb, 3
2
>         cbi     portb, 0
3
>         sbic    pinb, 3
4
>         sbi     portb, 0
5
>         sbis    pinb, 4
6
>         cbi     portb, 1
7
>         sbic    pinb, 4
8
>         sbi     portb, 1
9
>

Und ich dachte, Peter Dannegger wäre garnicht so auf Assembler

zu sprechen!! C ist seine Stärke

: Bearbeitet durch User
von Hannes L. (hannes)


Lesenswert?

Rolf H. schrieb:
> Und ich dachte, Peter Dannegger wäre garnicht so auf Assembler
>
> zu sprechen!! C ist seine Stärke

Irrtum, er kann so verdammt gut C, weil er Assembler virtuos beherrscht.

...

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

Und weil Assembler so vielseitig ist, hier noch eine Variante. ;-)

1
in r16,PINB
2
in r17,PORTB
3
bst r16,3
4
bld r17,0
5
bst r16,4
6
bld r17,1
7
out PORTB,r17
(ungetestet)

von Rolf H. (flash01)


Lesenswert?

nun sitze ich seit früh 6 Uhr und hier das Ergebnis!

so richtig haut es noch nicht hin, glaube das liegt an den
links verschieben. Ich müßte doch nach rechts verschieben.
Denn PB4+PB3 sollen an PB1+PB0 ausgegeben werden.
1
; Projekt-Name: Projekttiny13                      Datum: 24.10.2013                  
2
3
; Datei: Taste-LED.asm
4
5
; Option: bei gedrückter Taste sw1 (an PB3)leuchtet LEDrt (an PB1) 
6
;         bei gedrückter Taste sw2 (an PB4)leuchtet LEDgn (an PB0)
7
8
; AVR: Tiny13-20PU
9
10
  .INCLUDE   "tn13def.inc"     ; Deklaration für Tiny13
11
  .EQU       takt = 1000000    ; Systemtakt 1,0 MHz
12
13
  .def    akku=r16
14
  #define sw1  PINB,PB3
15
  #define sw2  PINB,PB4
16
  
17
  
18
  rjmp    start             ; Reseteinsprung
19
           
20
  start:                    ; Vorbereitung    
21
22
  ldi      akku, (1<<PB1) | (1<<PB0)          
23
  out      DDRB,akku                 ; PB1,PB0 = Output
24
                                     
25
  ldi      akku, (1<<PB3) | (1<<PB4)
26
  out      PORTB,akku                ;PB3,PB4 = Pull Up         
27
28
29
  loop:                    ; Vorschlag von Spess
30
  cbi      PORTB,PB0
31
  cbi      PORTB,PB1
32
33
  warte:
34
  sbic     sw1              ; Skip nach rcall, wenn PB3=LOW
35
  rjmp     gehe01           ; Skip nach gehe01, wenn PB3=HIGH       
36
  rcall    LED01
37
38
  gehe01:
39
  sbic     sw2              ; Skip nach rcall, wenn PB4=LOW
40
  rjmp     warte            ; Skip nach warte, wenn PB4=HIGH       
41
  rcall    LED02
42
 
43
  rjmp     loop
44
  
45
  LED01:
46
47
  in       akku,PINB        ; lade r16 mit Inhalt des SFR-Reg.
48
  lsl      akku             ; ein Bit nach links (warum links)??
49
  swap     akku             ; Nibble tauschen
50
  ori      akku,(1<<PB3) | (1<<PB4) ; Pull-Up
51
  out      PORTB,akku       ;Ausgabe
52
  ret
53
  
54
  LED02:
55
  
56
  in       akku,PINB        ; lade r16 mit Inhalt des SFR-Reg.
57
  lsl      akku             ; ein Bit nach links
58
  swap     akku             ; Nibble tauschen
59
  ori      akku,(1<<PB3) | (1<<PB4) ; Pull-Up
60
  out      PORTB,akku       ;Ausgabe
61
  ret
62
  
63
  .EXIT

: Bearbeitet durch User
von Karl H. (kbuchegg)


Lesenswert?

Ähm.

das hier von Spess
1
    in r16,Pinb            ;'Taste an PB4 und PB3
2
    lsl r16                ; ein Bit nach links
3
    swap r16               ; Nibble tauschen
4
    ori r16, 1<<PB4|1<<PB3 ; Pull-Up
5
    out Portb , R16        ;'Ausgabe

ist der KOMPLETTE Code in der Hauptschleife.
Diese 5 Zeilen übertragen den Zustand BEIDER Taster in einem Rutsch auf 
die Led.
1
  .INCLUDE   "tn13def.inc"     ; Deklaration für Tiny13
2
  
3
    ldi    r16, (1<<PB1) | (1<<PB0)          
4
    out    DDRB,r16; PB1,PB0 = Output
5
                                     
6
    ldi    r16, (1<<PB3) | (1<<PB4)
7
    out    PORTB,r16;
8
9
10
  loop:                       ; Vorschlag von Spess
11
    in     r16,Pinb           ;'Taste an PB4 und PB3
12
    lsl    r16                ; ein Bit nach links
13
    swap   r16                ; Nibble tauschen
14
    ori    r16, 1<<PB4|1<<PB3 ; Pull-Up
15
    out    Portb , R16        ;'Ausgabe
16
17
    rjmp   loop
18
  .EXIT

das ist ALLES.

von AudioHeinz (Gast)


Lesenswert?

Rolf H. schrieb:
> lsl      akku             ; ein Bit nach links (warum links)??
>   swap     akku             ; Nibble tauschen

Damit die Bits nach dem Nibbeltausch an der Stelle sitzen wo du sie 
brauchst.
Mal dir das auf einen Zettel und arbeite das Programm mit dem Bleistift 
ab. Dann wird das klar.

Also 1110_0111 sieht nach swap so aus:
-----0111_1110 ->doof

daher, lsl, einmal nach links und das Carry rechts rein .
---> 1100_1110.... Dann nach
Swap-1110_1100
------------^^ um diese Nullen geht es, sie sitzen jetzt an der 
richtigen Stelle und lassen nach "Out" die beiden LED in vollem Glanze 
erstrahlen.

Wenn dich die rechts rein geschobene Null stört, setzte das Carrybit mit 
"sec" vor dem lsl.

von Karl H. (kbuchegg)


Lesenswert?

> Ich müßte doch nach rechts verschieben.

zusammen mit dem swap tust du das doch!

Mal es dir auf
1
     7   6   5   4   3   2   1   0
2
   +---+---+---+---+---+---+---+---+
3
   | a | b | c | d | e | f | g | h |
4
   +---+---+---+---+---+---+---+---+
1
    lsl  r16
1
     7   6   5   4   3   2   1   0
2
   +---+---+---+---+---+---+---+---+
3
   | b | c | d | e | f | g | h | 0 |
4
   +---+---+---+---+---+---+---+---+
1
    swap   r16
1
     7   6   5   4   3   2   1   0
2
   +---+---+---+---+---+---+---+---+
3
   | f | g | h | 0 | b | c | d | e |
4
   +---+---+---+---+---+---+---+---+

Was ist da also in Summe passiert?
Ausgangspunkt war das hier
1
     7   6   5   4   3   2   1   0
2
   +---+---+---+---+---+---+---+---+
3
   | a | b | c | d | e | f | g | h |
4
   +---+---+---+---+---+---+---+---+

die beiden Bits 3 und 4 tragen die Buchstaben e und d.
Und wo sind sie im Endergebnis gelandet?
1
     7   6   5   4   3   2   1   0
2
   +---+---+---+---+---+---+---+---+
3
   | f | g | h | 0 | b | c | d | e |
4
   +---+---+---+---+---+---+---+---+
An den Bitpositionen 0 und 1

Genau wie gefordert.


Du musst die ganze Sequenz betrachten und nicht nur einen Ausschnitt 
daraus!

: Bearbeitet durch User
von Rolf H. (flash01)


Lesenswert?

mh....die beiden Tasten reagieren schon einzeln richtig
nur die Leds nicht!
Ich müßte doch 3x lsr verwenden, um PB4+PB3 ganz nach rechts zu schieben
oder???

von Rolf H. (flash01)


Lesenswert?

garnicht so einfach wie ich dachte....morgen geht es weiter
könnte es ja auch mal debuggen, dann sieht man es vielleicht besser.

Schönes Wetter bei Hamburg..muß ich ausnützen mit den Hubis!

Grüße

Rolf

von Karl H. (kbuchegg)


Lesenswert?

Rolf H. schrieb:
> mh....die beiden Tasten reagieren schon einzeln richtig
> nur die Leds nicht!

Dein Code dreht sich an allen Ecken und Enden den gerade vorher an PB0 
bzw PB1 eingestellten Zustand wieder um.

Entweder du betrachtest das ganze als Byteoperation, so dass beide Bits 
in einem Aufwasch behandelt werden. Oder du betrachtest es als 
Bitoperation, in denen du dich um jedes Bit einzeln persönlich kümmerst.
Aber nicht einmal so und einmal so. Denn das geht mit Sicherheit schief, 
weil du dir mit den Byteoperationen alles wieder zerstörst, was du 
vorher mit den Bitoperationen eingestellt hast.

> Ich müßte doch 3x lsr verwenden, um PB4+PB3 ganz nach rechts zu schieben
> oder???

kannst du auch machen.
Aber  lsl + swap ist halt um 1 Befehl kürzer :-)

von Peter D. (peda)


Lesenswert?

Rolf H. schrieb:
> könnte es ja auch mal debuggen, dann sieht man es vielleicht besser.

Nicht nur vielleicht.
Im AVR-Studio den Simulator anzuwerfen, tut doch nicht weh.

von Rolf H. (flash01)


Lesenswert?

es hat mir keine Ruhe gelassen!

Dabei spielte auch das "ORI" verrückt.
Wurde verwendet für Pull Up
Dabei sagt es: Verknüpfe RD mit der 8 Bit-Konstanten mit logisch ODER!!

Wie gesagt, es läuft erst mal umständlich, werde mir die andere
Variante mit "swap" nochmal vorknöpfen.
1
 loop:                    ; Vorschlag von Spess
2
  cbi      PORTB,PB0
3
  cbi      PORTB,PB1
4
5
  warte:
6
  sbic     sw1              ; Skip nach rcall, wenn PB3=LOW
7
  rjmp     gehe01           ; Skip nach gehe01, wenn PB3=HIGH       
8
  rcall    LED01
9
10
  gehe01:
11
  sbic     sw2              ; Skip nach rcall, wenn PB4=LOW
12
  rjmp     warte            ; Skip nach warte, wenn PB4=HIGH       
13
  rcall    LED02
14
 
15
  rjmp     loop
16
  
17
  LED01:
18
19
  in       akku,PINB    
20
  lsr      akku             ; ein Bit nach links (warum links)??
21
  lsr      akku
22
  lsr      akku
23
  out      PORTB,akku       ;Ausgabe
24
  ldi      akku,(1<<PB3)
25
  out      PORTB,akku
26
  ret
27
  
28
  LED02:
29
  
30
  in       akku,PINB        
31
  lsr      akku             ; ein Bit nach links
32
  lsr      akku
33
  lsr      akku
34
  out      PORTB,akku       ;Ausgabe
35
  ldi      akku,(1<<PB4)
36
  out      PORTB,akku
37
  ret
38
  
39
  .EXIT

: Bearbeitet durch User
von Karl H. (kbuchegg)


Lesenswert?

Du hast es immer noch nicht

Hier
1
  in       akku,PINB    
2
  lsr      akku             ; ein Bit nach links (warum links)??
3
  lsr      akku
4
  lsr      akku
5
  out      PORTB,akku       ;Ausgabe

veränderst du durch den OUT alle 8(!) Bits des PORTB. Es ist daher 
völlig sinnlos in deinem Programm zwischen LED01 und LED02 zu 
unterscheiden. Denn dein Programmabschnitt LED02 verändert eben nicht 
NUR den Zustand von LED02 sondern auch den von LED01!


Und hier
1
loop:                    ; Vorschlag von Spess
2
  cbi      PORTB,PB0
3
  cbi      PORTB,PB1
4
5
  warte:
6
....
7
 
8
  rjmp     loop

erfolgt dann ein Rücksprung zu loop, der dann erst recht wieder PB0 und 
PB1 verändert.

Dein Programm ist zu kompliziert! Du verlierst dich in der selbst 
geschaffenen Komplexität und überblickst nicht mehr, wer welchen Pin 
wann und warum verändert.

von Karl H. (kbuchegg)


Lesenswert?

Wenn du hier
1
  sbic     sw1              ; Skip nach rcall, wenn PB3=LOW
2
  rjmp     gehe01           ; Skip nach gehe01, wenn PB3=HIGH       
3
  rcall    LED01

mit dem sbic sowieso festgestellt hast, dass der Pin mit dem Taster 1 
auf 1 ist, dann brauchst du doch den ganzen Verschiebeklimbim gar nicht 
mehr. Du WEISST doch, dass der Pin auf 1 ist, also muss auch der 
zugehörige LED-Pin auf 1 geschaltet werden (und vice versa, wenn der Pin 
auf 0 ist). Dazu musst du nichts schieben, das Wissen darüber wie der 
Ausgangspin zu sein hat, liegt ja schon vor!

von Rolf H. (flash01)


Lesenswert?

damit wir uns richtig verstehen!
die LEDs sollen nur solange leuchten, wie ich die Taste drücke.
Und das tun sie jetzt sauber ohne zu flackern.
Das ORI verhinderte ein sauberes leuchten.
Ein Dreher ist noch drin, d.h.
drücke sw1 leuchtet LEDgn (PB1)
drücke sw2 Leuchtet LEDrt (PB0)
Ich wollte es aber umgekehrt.
Durch Korrektur in den beiden rcalls war es behoben.

Grüße

Rolf

von Rolf H. (flash01)


Lesenswert?

Karl Heinz schrieb:
> Wenn du hier
>
1
>   sbic     sw1              ; Skip nach rcall, wenn PB3=LOW
2
>   rjmp     gehe01           ; Skip nach gehe01, wenn PB3=HIGH
3
>   rcall    LED01
4
>
>
> mit dem sbic sowieso festgestellt hast, dass der Pin mit dem Taster 1
> auf 1 ist, dann brauchst du doch den ganzen Verschiebeklimbim gar nicht
> mehr. Du WEISST doch, dass der Pin auf 1 ist, also muss auch der
> zugehörige LED-Pin auf 1 geschaltet werden (und vice versa, wenn der Pin
> auf 0 ist). Dazu musst du nichts schieben, das Wissen darüber wie der
> Ausgangspin zu sein hat, liegt ja schon vor!

hast Recht....wieder was dazu gelernt!

Danke nochmal an alle die mir geholfen haben.

von Karl H. (kbuchegg)


Lesenswert?

Aha.
Wieder jemand der sich eine Aufgabenstellung wählt
> ich möchte am Port B3 und B4 (ATTINY13 gelegene Tasten abfragen
> und am selben Port B0, B1, B2 an Leds ausgeben

dann etwas programmiert und hinterher die Aufgabenstellung an das 
vorhandene Programm anpasst.

Na, dann drück mal beide Tasten gleichzeitig.

von Martin V. (oldmax)


Lesenswert?

Hi
Karl Heinz, bist du dir sicher, das Rolf "minimaxus" ist?
Gruß oldmax

: Bearbeitet durch User
von Karl H. (kbuchegg)


Lesenswert?

Mist.
Hast natürlich recht.

Rolf ist ja erst am 23. eingestiegen.

> ich habe mir über diesen Code so meine Gedanken
> gemacht.
> Gehen wir mal davon aus, ich hätte nur einen Tiny13...es
> muß doch einen Weg geben das mit den kleinen zu realisieren.
> Die beiden Tasten hängen an PB3 + PB4, 2 LEDs an PB0 + PB1
> Die Pegel an PB3/PB4 einlesen.
> Jetzt mit einem Trick nach PB1/PB0 verschieben.
> Zum Schluss ausgeben.

Aber egal.
Wenn diese Selbsthaltung und gegenseitige Auslösung gewollt ist, dann 
ist es ok.

von Rolf H. (flash01)


Lesenswert?

minimaxus schrieb:
> Hallo,
>
> ich möchte am Port B3 und B4 (ATTINY13 gelegene Tasten abfragen und am
> selben Port B0, B1, B2 an Leds ausgeben.Mit dem kleinen Programm komme
> ich nicht weiter.
> Ich kann zwar "Pullup- Spannung" messen, aber die "Auswertung" klappt
> nicht.
> Wo mache ich etwas falsch?
> Vieln Dank Minimaxus

Sorry, zum Schluss möchte ich nochmal zu meinen Mist Stellung nehmen:

Ich sehe innerlich ein, dass ich Mist gebaut habe.
Lese ich die Frage von minimaxus nochmals durch, so muss ich 
feststellen,
dass darauf ja gar nicht gezielt eingegangen wurde.
Es ging ihm nicht darum, mit welchen Chip seine Aufgabe zu realisieren
wäre (hier mit den Mega8) sondern mit den Tiny13.
Das ich es gewagt habe, seine Idee in ein Mist umzuwandeln, bereue ich
und werde so was nicht wieder tun..das verspreche ich den Moderator.
Ich kenne nun seit einigen Jahre Spess  und Hannes Lux..beide sind
immer sachlich geblieben.
Oldmax verzeihe ich das, er gab vor Jahren selbst zu, dass er manchmal
etwas hart im Ton ist.
Aber für ein Moderator ist es nicht die feine Art, es einfach als "Mist" 
abzutun.
Ihr könnt doch nicht erwarten, dass ich mit meinen 78 Jahren so
vollkommen bin wie Ihr. (da bekommen Andere schon Essen auf Rädern)
Dazu habe ich noch viel zu viel andere Hobbys, als mich nur mit Bit
und Byte zu beschäftigen.
Nichts für Ungut, aber das musste mal raus.
So schnell gebe ich nicht auf, d.h. die ganze loop-Routine
werde ich nach Karl Heinz Anregungen umkrempeln.

Ich hoffe, ich darf in diesem Forum nochmal ne Frage stellen.

Grüsse

Rolf

von Hannes L. (hannes)


Angehängte Dateien:

Lesenswert?

Rolf H. schrieb:
> Essen auf Rädern

Essen auf Rädern???

...

von Karl H. (kbuchegg)


Lesenswert?

Setz deine Brille auf, lies noch mal die letzten paar Postings und stell 
den Sinnzusammenhang her.

Mit 'Mist' hab ich mein Verhalten gemeint.
Ich hab mich vertan, indem ich dich mit dem TO verwechselt habe.

Denn genau das ist auch das Problem. Um Details nachzuschlagen, die ein 
Frager von sich gegeben hat, scroll ich zumindest ganz nach oben und 
lies noch mal nach, was im Eröffnungsposting steht. Das ist meine 
allererste Quelle von problemspezifischen Informationen.
Wenn du daher einen Thread kaperst, dann läufst du immer Gefahr, dass du 
(oder das Problem) verwechselt wird. Daher ist sowas meistens eine 
schlechte Idee. Mach deinen eigenen Thread auf, erzähle im 
Eröffnungsposting alles was wichtig ist, mach von mir aus einen Verweis 
auf den anderen Thread rein. Dann passiert sowas nicht.

Aber: Das soll jetzt keine Entschuldigung für mich sein, warum ich 
Personen bzw. Postings verwechselt habe. Das war einfach nur Mist, das 
hätte mir auffallen müssen.
Und nein. Wenn ich Blödsinn mache, bin ich (meistens) Manns genug das 
auch zuzugeben.

: Bearbeitet durch User
von Martin V. (oldmax)


Lesenswert?

Hi
Na ja, mit 78 Jahren kann man schon ein wenig wirr reagieren. Ich nehm's 
gelassen und wenn ich mal 78 bin, wer weiß....
Aber eines muss ich noch loswerden, ich glaub einfach nicht alles, was 
hier steht und bei Altersangaben, hmm, da bin ich besonders skeptisch.
Also, ein schönes WE
Gruß vom "harten" oldmax

von Rolf H. (flash01)


Lesenswert?

aber Martin Vogel...warum zweifelst Du das an!
hab den Ps. Ausweis hier vor mir liegen und siehe da
"Geburtsdatum der 06.01.1935" Erinnere ich mich an 1969 - 1971
zurück, da habe ich in Hamburg eine Umschulung zum Elektroniker
gemacht. Die Berufsbezeichnungen wie heute gab es dazumal noch nicht.
Meine Arbeit begann danach in der Nobelfirma "Hauni" in HH.
Die Fa. stellte uns Lernpackete (Hard und Software) sowie einen
Dozenten frei zur Verfügung. Das lernen begann mit einem Chip von
Intersiel und die nackte Maschienensprache.
Die Worte des Dozenten werde ich nie vergessen. Er war der Meinung:
ihr müsst von der Materie nachts träumen...auf der Autobahn schon
programmieren...es darf euch nicht mehr loslassen.
Wenn er zu spät kam, wussten wir er hat die Abfahrt wegen HIGH und LOW
verpasst. Die Materie hat mich eigentlich nie losgelassen!
Betrachte ich jetzt mein Code, so muss ich schon feststellen, dass
ich mich ziemlich blöd mit lsl und swap angestellt habe.
Auch die ganze Schieberei ist vom Tisch.
Eine Frage bleibt noch offen, aber ich wage sie nicht zu stellen,
zumal es ja nicht mein Thread ist.

Grüße

Rolf

von Martin V. (oldmax)


Lesenswert?

Hi Rolf
Ok, Rolf, auch ich kenne Ingenieure, die bis ins hohe Alter mit neuer 
Materie keine Probleme hatten und wenn du dich mit Controllern 
beschäftigst, ist es doch ok. Hier geht es doch nicht darum, jemanden 
persönlich anzugreifen. Es ist oft die Art und Weise der Textform, warum 
wir die Augen verdrehen. Und das Gegenüber ist leider nicht real, 
sondern halt irgendwo an einer Tastatur.
Zurück zum Thema:
Warum machst du nicht einen eigenen Thread auf. Ist dich ganz einfach:
Neuer Beitrag anklicken Thema benennen und dann frag drauflos.
Gruß oldmax

von Wolfgang (Gast)


Lesenswert?

Karl Heinz schrieb:
> Na, dann drück mal beide Tasten gleichzeitig.

Beide Tasten gleichzeitig drücken wird schwierig.
Auftreten kann, dass sie gleichzeitig gedrückt sind - und dass kann für 
die Programmlogik ein riesen Unterschied sein. ;-)

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.