- 3D-Druck Einstieg und Tipps         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 20 von 20

Thema: Attiny12 und Variablen

  1. #11
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    53
    Beiträge
    2.236
    Anzeige

    Praxistest und DIY Projekte
    dabei ist xx eine zahl zwischen 0 und 31
    Das ist nur zur Hälfte richtig.
    Register R0 - R15 kann man nicht mit dem Befehl ldi beschreiben...

    Gruß Sebastian

  2. #12
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    36
    Beiträge
    1.614
    das ist gut, ich hatte mir schon sowas gedacht, weil ich auch weiß, das verschiedene register vom atmel selbst zur berechnung dienen, aber ich wusste nicht ganz welche, danke.

    Martin
    Ich will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds, Entwickler von Linux

  3. #13
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    53
    Beiträge
    2.236
    Zur Berechnung kann man sie alle verwenden, es gibt schon ein Paar "Sonderregister", aber um Werte abzuspeichern kann man alle Benutzen, nur beim Beschreiben muß man aufpassen:

    ldi R16,0xFF geht

    ldi R2,0xFF geht nicht, da muß man schon einen Umweg machen:

    ldi R16,0xFF
    mov R2,R16

    daraus zu lesen ist wiederrum egal:

    out PORTD,R2
    out PORTD,R16

    beides geht...

    Naja, wenn jemand mehr wissen möchte kann ich nur auf diese Seite verweisen.

    Gruß Sebastian

  4. #14
    RN-Premium User Begeisterter Techniker
    Registriert seit
    30.04.2004
    Alter
    47
    Beiträge
    245
    Der Tiny12 hat keinen SRam, nur die Register.
    als in Assembler kann man das lösen, in dem man jeweils 2 Register pro zahl verwendet.
    ldi R16, 0x27
    ldi R17, 0x10 ; 0x2710 = 10000
    ldi r18, 0x03
    ldi r19, 0xe8 ; 0x03e8 = 1000

    nun die subtrakion
    zuerst die unteren Bytes subrtahieren
    sub r17, r19 ; Wenn R19 > R17 wird das Carry Flag gesetzt, sonst nicht
    dann
    subc r16, r18 ; Jetzt mit carry subtrahieren

    In r16, r17 steht nun das Ergebnis

    Ich kann mir kaum vorstellen, das man das in Bascom anders lösen kann, wenn man keine SRAM hat. Ich denke, bei den Ramlosen typen wird man nicht um Assembler rumkommen.

    lg

    Alex

  5. #15
    Neuer Benutzer Öfters hier
    Registriert seit
    22.01.2005
    Beiträge
    23
    hi leute ich hab mal vor längerer zeit ne kaffemaschine mit nem tiny bestückt (orginal ic hat sich in Rauch aufgelöst) vieleicht hilft das weiter

    '$regfile = "AT12def.dat"
    '$tiny
    'portb.0 Relais ,,Pinb.1 ON/OFF ..Pinb.2 3 Tassen ,, Portb.3 LED1 ,, Portb.4 LED 2

    Enable Interrupts
    Enable Int0 'enable the interrupt
    On Int0 Stopall Nosave 'jump to label2 on INT0

    Dim A As Iram Word
    Dim B As Iram Word



    $asm
    ldi R16,&h07
    Out Ddrb , R16 '3 Ausgänge
    LDI R16 ,&h18
    Out Portb , R16 'Pullup´s setzen
    $end Asm


    Start:
    Do
    If Pinb.1 = 1 Then Gosub Onof 'Taste 0/1
    If Pinb.4 = 1 Then Gosub Dreibis 'Taste 3-5 Kaffe
    Loop
    End

    Onof:
    Set Portb.2
    Wait 120
    Reset Portb.2
    Return

    Dreibis:
    Set Portb.2
    Wait 120
    Reset Portb.2
    Return

    Stopall:
    Portb = 0 'reset

    Return


    Tagtimer: '720 s sind 12 Stunden

    Return

  6. #16
    Benutzer Stammmitglied
    Registriert seit
    22.03.2005
    Beiträge
    91
    Sicher dass das so auf der Hardware läuft?
    Im Simulator tut es, allerdings hängt sich sich der Tiny 12 auf sobald man Wait benutzt, Waitms funktioniert. Ansonsten ist halt wie oben gezeigt Assembler angesagt.

    Gruß

    Sven

  7. #17
    Neuer Benutzer Öfters hier
    Registriert seit
    22.01.2005
    Beiträge
    23
    die Kaffemaschiene läuft jetzt schon 2 jahre damit also hab damit anscheinend nichts grundlegendes falsch gemacht denk ich mal
    nochmal sven

  8. #18
    Neuer Benutzer Öfters hier
    Registriert seit
    22.01.2005
    Beiträge
    23
    Achso zu Wait's,Ich wollte nur zeigen wie das mit dem iram und dem Einbinden von Assembler funktioniert. Im kompletten Programm hab dann noch den Timer vergewaltigt .

  9. #19
    Benutzer Stammmitglied
    Registriert seit
    22.03.2005
    Beiträge
    91
    Hi nochmal!

    Hey, das ist ja klasse, daß es so funktioniert. Also du hast kein Wait verwendet. Hast du den Timer dann auch in Assembler geprogt? Mit Bascom klappt das bei den kleinen Tinys nicht so recht. Jedenfalls habe ich es noch nicht hinbekommen, wenn ich da den Timer so konfiguriere, wie ansonsten gewohnt tut sich anschließend auf dem Tiny nix mehr .

    Gruß

    Sven

  10. #20
    Neuer Benutzer Öfters hier
    Registriert seit
    22.01.2005
    Beiträge
    23
    Ich hab jetzt leider kein tiniy12 mehr da um es zu testen
    Hilfreich ist auf alle fälle beide Simulatoren zu verwenden.(Bascom und Studio4 unterscheiden sich in eigen sachen)
    Ich hab grad mal die den timer gestarte, in Studio4 funzt er bestens.

Seite 2 von 2 ErsteErste 12

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress