-
        

Ergebnis 1 bis 9 von 9

Thema: Attiny13 Flamenreglung

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    07.06.2013
    Beiträge
    12

    Frage Attiny13 Flamenreglung

    Anzeige

    Hallo liebe Leute
    Habe hier ein Problem mit einem Attiny13
    An dem ADC ist ein LDR angeschlossen der die Flame von einem Ölbrenner überwacht und über die PWM ein Magnetventil in Sekundentakt öffnen und schliessen soll.
    Habe über ein Atmega8 eine solche Steuerung schon am laufen. Jetzt meine Frage: Wie bekomme ich den ADC auf 8 Bit und warum sagt Bascom "Out of SRAM space"

    Habe mit Attiny13 noch nicht gearbeitet

    Hier der Code:

    $regfile = "attiny13.dat"
    $crystal = 1200000

    Dim Flame As Word

    Config Portb.0 = Output
    Config Portb.3 = Output
    Config Portb.4 = Output

    Config Adc = Single , Prescaler = Auto , Reference = Avcc
    Start Adc

    Config Timer0 = Pwm , Compare A Pwm = Clear Down , Prescale = 1024
    Enable Timer0


    Do
    Flame = Getadc(2)
    Pwm0a = Flame

    If Flame <= 20 Then
    Portb.3 = 0
    Portb.4 = 0
    Elseif Flame > 55 And Flame <= 254 Then
    Portb.3 = 1
    End If

    Loop

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112
    Zitat Zitat von Horst12 Beitrag anzeigen
    Wie bekomme ich den ADC auf 8 Bit ...
    Wenn du nicht in die Register eingreifen willst oder kannst, dann teile den Wert diurch 4 oder shifte um 2 Stellen nach rechts.
    Zitat Zitat von Horst12 Beitrag anzeigen
    ... und warum sagt Bascom "Out of SRAM space"
    Weil du im Programm keine Wert für die Stacks und Framesize eingetragen hast. Daher nimmt Bascom die aus den Options -> Chip und die sind wahrscheinlich so hoch, dass die wenigen Byte SRAM schon davon verbraucht werden.
    Probier mal recht kleine Werte wie
    $hwstack=10
    $swstack=10
    $framesize=10

  3. #3
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.551
    ... Problem mit einem Attiny13 ... Wie bekomme ich den ADC auf 8 Bit ... "Out of SRAM space" ...
    Das Datenblatt kann fast immer Aufklärung schaffen:
    Zitat Zitat von Datenblatt zum ATtiny13A, 8126F–...–05/12, Seite 83
    ... The ADC generates a 10-bit result which is presented in the ADC Data Registers, ADCH and ADCL. By default, the result is presented right adjusted, but can optionally be presented left adjusted by setting the ADLAR bit in ADMUX ...
    ... sprich: optionally be presented left adjusted by setting the ADLAR bit in ADMUX. D.h: mit gesetztem ADLAR ist der 8bittige Wert im ADCH; keine zusätzliche Arbeit, kein Speicherverschludern, das ADCL darf man da getrost vergessen denn man muss nur dieses eine Byte ADCH lesen. Und vorher zweckmässigerweise das Datenblatt des tiny *ggg*.

    Bits setzen in Deiner Programmiersprache sollte doch gehen ! ? . . .

    SRAM ist beim tiny13 ziemlich spärlich, hier ist der Rat von for_ro sicher passend. Ansonsten darf man eben nie mehr SRAM im Code definieren als verfügbar ist . . . Einzige Möglichkeit: sparen!

    Ach ja, noch etwas:
    Der Umgang mit Mikrocontrollern ohne das zugehörige Datenblatt zu lesen ist eines der letzten großen Abenteuer unserer Tage.
    Geändert von oberallgeier (11.12.2013 um 09:32 Uhr)
    Ciao sagt der JoeamBerg

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    07.06.2013
    Beiträge
    12
    Hallo Leute
    Danke für die Tipps.
    Bin halt Anfänger

    Gruss

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    07.06.2013
    Beiträge
    12
    Schönen Abend Leute
    Habe alles probiert mit dem ADC beim Attiny 13. Nichts geht.
    Habe mit dem Atmega8 schon viel gemacht, aber der Attiny13 macht mir das Leben schwer.
    Jetzt habe ich ein kleines Testprogramm geschrieben für den ADC. Sage mir bitte jemand, warum das Ding nicht so läuft???

    $regfile = "attiny13.dat"
    $crystal = 1200000
    $hwstack = 10
    $swstack = 10
    $framesize = 10


    Dim Flame As Word

    Config Portb.3 = Input
    Config Portb.0 = Output
    Config Portb.1 = Output

    Config Adc = Single , Prescaler = 128 , Reference = Avcc

    Start Adc



    Do
    Flame = Getadc(3)

    If Flame <= 200 Then
    Portb.0 = 0
    Portb.1 = 1
    Elseif Flame > 200 And Flame <= 800 Then
    Portb.1 = 1
    Elseif Flame > 800 And Flame <= 1023 Then
    Portb.1 = 0
    End If

    Loop

    Danke im Voraus
    Und frohes Fest

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112
    Zitat Zitat von Horst12 Beitrag anzeigen
    Sage mir bitte jemand, warum das Ding nicht so läuft???
    "...nicht so läuft???" ist wenig eindeutig. Macht dein Programm auch im Simulator nicht das, was du erwartest?
    Grundsätzlich scheint mir daran nichts falsch zu sein. Leider habe ich keinen Tiny13 zum Ausprobieren.

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    07.06.2013
    Beiträge
    12
    Hallo
    Im Simulator bei Bascom funktioniert alles. Wenn ich ein Poti mit 25 k an an ADC3 anschliesse leuchtet die LED auf dauer. Egal welchen Werte ich eingebe.
    Wenn ich einen Blinker programmiere gehen alle Ports. Controller auch schon getauscht.

    Gruß
    Horst12

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    24
    Beiträge
    1.544
    Was mir gerade beim Überfliegen auffällt:
    Code:
    Config Portb.3 = Input
    sollte wohl so sein:
    Code:
    Config Pinb.3 = Input
    Weiß nicht genau, wie das bei dem µC so ist, aber ich würde der Vollständigkeit halber noch den Pull-Up abschalten.

    Gruß
    Chris

  9. #9
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112
    Zitat Zitat von Horst12 Beitrag anzeigen
    Hallo
    Im Simulator bei Bascom funktioniert alles. Wenn ich ein Poti mit 25 k an an ADC3 anschliesse leuchtet die LED auf dauer. Egal welchen Werte ich eingebe.
    Dann würde ich zunächst mal vermuten, dass etwas an deiner HW nicht stimmt. Bist du sicher, dass du das Poti richtig angeschlossen hast?

Ähnliche Themen

  1. Attiny13 Frage
    Von Caro im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 10
    Letzter Beitrag: 28.09.2012, 08:11
  2. ATtiny13
    Von modellbahner im Forum AVR Hardwarethemen
    Antworten: 5
    Letzter Beitrag: 29.10.2010, 16:09
  3. attiny13
    Von epos im Forum AVR Hardwarethemen
    Antworten: 2
    Letzter Beitrag: 10.11.2007, 16:55
  4. attiny13
    Von epos im Forum AVR Hardwarethemen
    Antworten: 8
    Letzter Beitrag: 05.10.2007, 22:39
  5. attiny13
    Von epos im Forum AVR Hardwarethemen
    Antworten: 2
    Letzter Beitrag: 28.05.2007, 13:31

Berechtigungen

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