Eine einfache Sache...

Grandpa

Aktives Mitglied
24. Juli 2008
1.038
1
38
Hannover
Sprachen
  1. BascomAVR
...und funktioniert doch nicht.

Hallo,

ist gut ein Jahr her mit diesem Program und dem Tiny13V; da hat es - leicht abgewandelt und mit einem 7- Segment - problemlos funktioniert (auch die komunication mit einem 2. µC). Nun habe ich statt des 7-Segmentes jetzt 8 Leds eingesetzt und über das 74HC595 ein Lauflicht erwartet...Es leuchten nach Tastendruck aber nur vereinzelt Leds und auch nur in langen Abständen auf...

Ich hab schon, wie ich meine, alles probiert. Auch mit und ohne Fuse- Frequenzteiler und mit den entsprechenden Frequenzen über $Crystal. Kann doch nicht sein, daß das nicht mehr geht...

Code:
''
' Name           : Tribuenenblitz_tiny13V.bas
' Autor           : ACVision (c) 2006-2013 by Michael Gewohn, 31.03.2013
'' Funktion      : Tribünenblitzer über 5 Schieberegister 74HC595
' µC               : ATtiny13V 10PU
'____________________________________________________________________
''
$regfile = "attiny13.dat"       ' specify the used micro
$crystal = 9600000       ' used crystal frequency
$hwstack = 32       ' default use 32 for the hardware stack
$swstack = 8       ' default use 10 for the SW stack
$framesize = 20       ' default use 40 for the frame space
'____________________________________________________________________
'_____ Variablen - Subroutinen - Labels  ___________________________________
''
dim i as byte , k as byte , l as byte , m as byte
'____________________________________________________________________
'_____ Ports definieren _________________________________________________
'
DDRB = &B00000111       'RCK, SI, SCK
portb = &B00011000       ' RCK,  SCK, SI - low , Taster 1+ 2 - high'
'____________________________________________________________________
'_____ Pins zuweisen, Schieberegister 74HC595  __________________________
''
SI alias portb.0       ' 5 - Datenbits übertragen
RCK alias portb.1       ' 6 - Anzeigen und Speichern
SCK alias portb.2       ' 7 - Schiebetakt über SHIFTOUT
hin alias pinb.4       ' 3 - Tribühnenblitz 1 - 5
her alias pinb.3       ' 2 - Tribühnenblitz 5 - 1
'____________________________________________________________________
'_____ Hauptprogramm  ________________________________________________
''
' main:
''
waitms 200
do
    'debounce hin , 0 , blitz
    'debounce her , 0 , blitz
    if hin = 0 then l = 1 : m = 8 : gosub blitz : waitms 200
    if her = 0 then l = 8 : m = 1 : gosub blitz : waitms 200
loop
end
'____________________________________________________________________
'_____ Sub's / Labels  _________________________________________________
''
blitz:
    for i = l to m
        k = lookup(i , Zeichen)
        shiftout SI , SCK , k , 1       ' Zeichen ins Register...
        RCK = 0 : RCK = 1 : RCK = 0       '...und anzeigen
        waitms 100
     next i
return
'____________________________________________________________________
'_____ DATA _________________________________________________________'
''
Zeichen:
'        0                     1                     2                      3                     4                      5
data &B0000_0000 , &B0000_0001 , &B0000_0010 , &B0000_0100 , &B0000_1000 , &B0001_0000
'        6                     7                     8
data &B0010_0000 , &B0100_0000 , &B1000_0000
'        alle an            alle aus
data &B11111111 , &B00000000

'        0                   1                    2                    3                   4                     5
'data &B00111111 , &B00000110 , &B01011011 , &B01001111 , &B01100110 , &B01101101
'        6                   7                    8                    9                    dp                  -
'data &B01111100 , &B00000111 , &B01111111 , &B01100111 , &B10000000 , &B01000000
'        A                   B                    C                   d                    E                   F
'data &B01110111 , &B01111100 , &B00111001 , &B01011110 , &B01111001 , &B01110001
'        G                   H                   dp                  -                     alle an            alle aus
'data &B01111101 , &B01110110 , &B10000000 , &B01000000 , &B11111111 , &B00000000
 
Das ist jetzt der Code, der damals mit dem Tiny13 lief? Mich wundern die Vorgaben für die Stacks und den Framesize. Das sind zusammen ja 60 reservierte SRAM-Register. Die verwendeten (globalen) Variblen kommen doch noch dazu, oder? Damit wär der RAM voll.
Die For-Schleife geht so, bei l>m? Da ist i doch bereits vor dem ersten inkrement größer als m, wodurch die Schleife terminiert. Oder erkennt Bascom das entsprechend?

LotadaC
 
Yip,hat vorher alles funktioniert. HIER mußte ich die Stacks verringern, weil Bascom meckerte. Es HAT damals alles funktioniert. Der Tiny bekam die Anzeigebefehle für die 7- Segmente von einem mega8....

Aber Du hast recht, die Rückwärtsschleife funktioniert nur mit STEP -X. Hatte ich vergessen, nur schnell noch reingeschrieben. Soweit bin ich aber gar nicht mehr gekommen. Zuerst hatte ich das Unterprogramm in der Hauptschleife direkt laufen - nix. Ich habe gebrauchte wie auch neue µC und 595er ausprobiert, um defekte auszuschließen. Und richtig und sicher gesteckt sind die Verbindungen auch.

Es leuchten ja einzelne Led, nur in großen Zeitabständen. Als ob der µC extrem verlangsamt werden würde. DAS ist ja das Problem.

Ich versuch das noch mal am mega8...
 
Hallo LotadaC,

habe die Korrekturen zu Deinem Verständnis der Schleife oben mal in rot eingetragen; aber das war ja nicht das Problem.
So werden jetzt immerhin die ersten 4bit einzeln angezeigt, aber immer noch viel zu langsam....

Vielleicht teste ich heute noch den mega8.
 
Hi Dino,

hast es gestern ja recht schnell gelöst...der Masterreset SCLR war nicht angeschlossen.:flowers:
Ich wär natürlich selbst drauf gekommen, war mir im Momang nur kurz entfallen....:flute:
 
Hallo,

hast es gestern ja recht schnell gelöst...der Masterreset SCLR war nicht angeschlossen.:flowers:
Ich wär natürlich selbst drauf gekommen, war mir im Momang nur kurz entfallen....:flute:

tja ... freie Eingänge sind hochohmig und fangen dann als Antenne gerne mal irgendwelche Potentiale ein :p

Die Fehlersuche war dann ja zusammen mit LotadaC mit seinem neuen LA-8 aus Dirk seinem Shop :D

Für die anderen ...
An den Eingängen (Clock, Data In, Latch) des 74595 konnte man die Signale des Tiny sehen. An den Ausgängen zu den LEDs war aber nur ab und zu ein kurzes Aufflackern zu sehen. Sonst aber nix. Am Data-Out des Schieberegisters konnte man auch nichts sehen. Dort hätte man nun die Bits erwartet die beim letzten Durchgang reingeschoben wurden. Mit dem nächsten Durchgang hätten die dort herauspurzeln müssen. Machten die aber nicht. Es war total tot. Irgendwie ist dann auf jeden Fall die Idee mit dem MCLR entstanden und wie der eigentlich angeschlossen ist.

Soweit zum Lösungsverlauf.

Gruß
Dino
 

Ü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)