- LiTime Speicher und Akkus         
Ergebnis 1 bis 7 von 7

Thema: Bascom AVR Random Befehl Problem

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    26.03.2012
    Ort
    BaWü
    Beiträge
    31

    Bascom AVR Random Befehl Problem

    Anzeige

    Praxistest und DIY Projekte
    Moin alle zusammen,

    habe hier ein kleines Problem und zwar möchte ich mit Hilfe eines AT Tiny 13 einen kleinen elektronischen Würfel per Zufallsgenerator, sprich "var = Rnd()"
    programmen. Das Problem ist nun, dass Bascom in der Zeile der Dimensionierung der Variable und an der Zeile der Wertdefinierung (X = Rnd(6)) etwas zu meckern hat.

    Hier mal der Quelltext:

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

    Config Pinb.0 = Input
    Config Portb.1 = Output
    Config Portb.2 = Output
    Config Portb.3 = Output
    Config Portb.4 = Output

    Start:

    Dim X As Byte

    Do
    If Pinb.0 = 1 Then
    X = Rnd(6)
    End If

    If X = 0 Then
    Portb.1 = 0
    Portb.2 = 0
    Portb.3 = 1
    Portb.4 = 0
    End If

    If X = 1 Then
    Portb.1 = 0
    Portb.2 = 0
    Portb.3 = 0
    Portb.4 = 1
    End If

    If X = 2 Then
    Portb.1 = 0
    Portb.2 = 0
    Portb.3 = 1
    Portb.4 = 1
    End If

    If X = 3 Then
    Portb.1 = 0
    Portb.2 = 1
    Portb.3 = 0
    Portb.4 = 1
    End If

    If X = 4 Then
    Portb.1 = 0
    Portb.2 = 1
    Portb.3 = 1
    Portb.4 = 1
    End If

    If X = 5 Then
    Portb.1 = 1
    Portb.2 = 1
    Portb.3 = 0
    Portb.4 = 1
    End If
    Loop
    End

    ----------------------------------------------

    Wäre nett wenn mir jemand sagen könnte was daran genau falsch ist.

    Als Fehler werden Error 22 (Dim X As Byte)
    und Error 46 (X = Rnd(6))
    angegeben.

    mfg
    Paulschen97

  2. #2
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9
    Hi,

    also ich hab dein Programm mal kompiliert und dann kam folgender Fehler:
    Bild hier  

    Wenn ich den Chip auf einen Mega32 ändere kompiliert er problemlos.
    Ich denke du hast zu wenig SRAM im Tiny. Und es gibt keinen Fehler im Programm
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    12.01.2007
    Ort
    westliches Pannonien
    Beiträge
    123
    Hallo!

    Stacks angeben!

    Bei mir compilierts anstandslos!

    MfG

    Edit: Hab gerade was seltsames endeckt:

    Mit diesem Header kommt "Out of SRAM"
    Code:
    $regfile = "attiny13.dat"
    $crystal = 9600000
    '$hwstack = 0
    '$swstack = 0
    '$framesize = 0
    Während mit diesem es anstandslos compiliert:
    Code:
    $regfile = "attiny13.dat"
    $crystal = 9600000
    $hwstack = 0
    $swstack = 0
    $framesize = 0
    Weiß MWS Abhilfe?

    MfG
    Rone
    Geändert von Rone (27.03.2012 um 00:09 Uhr)

  4. #4
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9
    Eventuell kompiliert er im 1. Fall anders und ist da mit der SRAM-Benutzung etwas "großzügiger"
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Zitat Zitat von Rone Beitrag anzeigen
    Mit diesem Header kommt "Out of SRAM"
    Während mit diesem es anstandslos compiliert:
    Wenn keine Werte für Stack und Frame im Code angegeben werden, dann sind die Einstellungen der IDE unter Optionen --> Compiler --> Chip aktiv. Sind dort zu hohe Werte drin, dann gibt's Mecker.
    Einstellungen von 0,0,0 sind nicht das Richtige, nur weil's compiliert, muss es deswegen nicht laufen. Man sollte so viel Speicher wie möglich und verfügbar für Stack und Frame verwenden, der Bascom Report gibt Auskunft darüber wie viel frei ist.

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    12.01.2007
    Ort
    westliches Pannonien
    Beiträge
    123
    Das mit der Voreinstellung ist mir nachher auch in den Sinn gekommen. Nachgeschaut >> Es werden alle 64 Byte reserviert. Logisch das dann nix mehr frei ist.
    An die Report Möglichkeit denke ich leider zu selten.

    Danke nochmal für die Erläuterungen.

    MfG
    Rone

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    26.03.2012
    Ort
    BaWü
    Beiträge
    31
    Danke! für eure schnelle Antwort, der Error-Code taucht nun nicht mehr auf.
    Jetzt muss ich das Programm nur noch ein bisschen verfeinern und darauf achten, dass der Code nicht größer als 1kB wird,
    ich quäle den Tiny jetzt schon mit 966 Byte. xD

    Also Danke nochmal
    und mfg
    Paulschen97

Ähnliche Themen

  1. Print-Befehl von Bascom in C nachbauen
    Von Murus im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 27.08.2008, 13:08
  2. was bewirkt dieser bascom befehl?
    Von alper im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 18.04.2007, 21:07
  3. Problem mit Bascom Include Befehl
    Von kowolfgang im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 7
    Letzter Beitrag: 13.11.2005, 09:17
  4. SoftwareFehler bei BASCOM AVR Basic, Befehl: Shiftin ????
    Von magluh im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 10
    Letzter Beitrag: 11.11.2004, 21:19
  5. random unter cbasic
    Von Brot im Forum Robby CCRP5
    Antworten: 2
    Letzter Beitrag: 16.08.2004, 02:38

Berechtigungen

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

LiTime Speicher und Akkus