Bascom AVR Digitale ausgabe nicht vom ersten Portpin an

OP #1145434
Hi,
ich versuche gerade eine Sieben-Segment-Anzeige zu programmieren und da 
krieg ich probleme. Denn die Ausgänge zu einem BCD zu 7-Segm. Baustein 
fangen nicht beim PortD.0 sondern bei PortD.4 an! Ich versuche es jetzt 
schon über 2h den AVR davon zu überzeugen die Ausgabe erst ab D.4 zu 
beginnen...der ist allerdings nicht einverstanden.
Ich habe schon einige Sachen getestet jedoch funktioniert da nichts von. 
Hat einer von euch eine Idee wie man das lösen kann?

Gruss
Zippo
OP #1145463
Na so was!!!
Der Code ist nicht geheim! Ich hatte ihn auch angehängt nur erscheint er 
nicht! Also kopier ich ihn mal ein

$regfile = "m8def.dat "
$crystal = 1000000
$baud = 2400
Ddrb = &B00111000
Portb = &B00111000
Config Portd.4 = Output
Config Portd.5 = Output
Config Portd.6 = Output
Config Portd.7 = Output
Dim A As Long
Dim A1 As Long
Dim Ganzevolt1 As Long
Dim Ganzevolt As Long
Dim Kommavolt As Long
Dim X As Byte
Dim Y As Long
Dim Y1 As Long
'Dim Adcwert As Word
Config Adc = Single , Prescaler = Auto , Reference = Avcc

Const Adcwert = 1000

Do
'Adcwert = Getadc(0)
A1 = Adcwert * 200
A = A1 / 1023
Ganzevolt = A / 10
Ganzevolt1 = Ganzevolt * 10
Kommavolt = A - Ganzevolt1
Select Case Ganzevolt
Case Is < 10 : X = 0
Case Is >= 10 : X = 1
Case Is >= 20 : X = 2
End Select
Y1 = X * 10
Y = Ganzevolt - Y1

Print X ; Y ; "," ; Kommavolt

'X = Makebcd(x)
Portd = X
Portb.3 = 0
Waitms 10
Portb.3 = 1
'Y = Makebcd(y)
Portd = Y
Portb.4 = 0
Waitms 10
Portb.4 = 1
'Kommavolt = Makebcd(kommavolt)
Portd = Kommavolt
Portb.5 = 0
Waitms 10
Portb.5 = 1


Loop
Angehängte Dateien:
Gast #1145517
> wie ich schon geschrieben hab: die BCD-Zahl einfach mal 4 Stellen nach
> links shiften...

Das ist da erstmal richtig.

Trotzdem frage ich mich immer wieder, warum man ein Problem so 
umständlich löst. An BASCOM kann es doch nicht liegen, denn auch mit 
BASCOM kann man halbwegs effizient programmieren. Hier ein Beispiel 
(mein erstes und vermutlich einziges BASCOM-Programm):
http://www.hanneslux.de/avr/divers/pm24/VM_tn24_1.bas
Es ist Teil dieser Spilerei mit dem Tiny24:
http://www.hanneslux.de/avr/divers/pm24/index.html

...
#1145527
Hannes Lux wrote:
>> wie ich schon geschrieben hab: die BCD-Zahl einfach mal 4 Stellen nach
>> links shiften...
>
> Das ist da erstmal richtig.
>
> Trotzdem frage ich mich immer wieder, warum man ein Problem so
> umständlich löst. An BASCOM kann es doch nicht liegen, denn auch mit
> BASCOM kann man halbwegs effizient programmieren.

beziehst du dich auf das ganze gepostete Programm oder auf das 
Shiften..weil was kürzeres wüsste ich in diesem Fall atm nicht...
Gast #1145549
> beziehst du dich auf das ganze gepostete Programm oder auf das
> Shiften..weil was kürzeres wüsste ich in diesem Fall atm nicht...

Ich beziehe mich auf das ganze Programm.
Das Shiften ist in Ordnung, wenn man das Programm als gegeben 
voraussetzt.

Allerdings ist für diesen Zweck der SWAP-Befehl (ASM) bedeutend 
effektiver. Ich weiß allerdings nicht, wie ich BASCOM dazu überreden 
sollte SWAP zu verwenden, besonders, da BASCOM zwingend alle Variablen 
im SRAM hält, SWAP aber auf Register wirkt. So tief bin ich in BASCOM 
nicht eingestiegen, ich habe es auch nicht vor, tiefer einzusteigen.

Ich programmiere meine AVRs in ASM. Dieses BASCOM-Programm ist nur 
entstanden, weil ein guter Freund auch etwas umständlich (vom 
Algorithmus her) programmiert hatte und ich ihm zeigen wollte, dass das 
Programm mit anderen Algorithmen nur die Hälfte des Tiny24 belegt, 
während Seines nicht mehr in den Tiny24 hineinpasste und einen Tiny44 
brauchte. Die ASM-Version belegt aber weniger als 25% des Tiny24-Flash 
(genauen Wert vergessen) bei höherem Funktionsumfang.

...

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.