PortB an ATTINY2313 verhält sich komisch

OP #993479
Hi,

ich bin Anfänger was µC angeht und versuche gerade mit grundlegenden 
Ausgabeversuchen an den Ports diese zu verstehen.

Mit folgendem Code müssten ja eigentlich alle LEDs an PortB blinken, tun 
diese aber nicht. Es blinkt nur portb.0 und portb.4

Was mach ich da falsch bzw. was könnte das sein?

Hier der Code:

$regfile = "attiny2313.dat"
$crystal = 1000000
Config Portb = Output
Do
Portb = $b00000000
Wait 1
Portb = $b11111111
Wait 1
Loop
End


Gruß, Benny.
OP #993513
Hi,

ok, hab glaub die Richtung des Fehler herausgefunden. Kann es sein das 
man den µC jedes mal vorher löschen muss bevor man den neu proggt? Ich 
dachte Bascom macht das automatisch. Hab jetzt ein wenig herumgespielt 
und bemerkt das er anscheinend nicht alles neu beschreibt, sondern nur 
das was neu programmiert wurde.

Irgendwie blicke ich das nicht, vorher also immer löschen. Aber wo sage 
ich das dem Bascom?


Gruß, Benny.
OP #993517
Hi nochmal,

also ich blicks jetzt gar nicht mehr.

Hab eben mit AVR-Studio extra den Chip vorher gelöscht. Bei folgendem 
Code blinken jetzt die LEDs an Portb 0 und 4.

$regfile = "attiny2313.dat"
$crystal = 1000000
Ddrb = $b11111111
Do
Portb.0 = 0
Portb.1 = 0
Portb.2 = 0
Portb.3 = 0
Portb.4 = 0
Portb.5 = 0
Portb.6 = 0
Portb.7 = 0
Wait 1
Portb.0 = 1
Portb.1 = 1
Portb.2 = 1
Portb.3 = 1
Portb.4 = 1
Portb.5 = 1
Portb.6 = 1
Portb.7 = 1
Wait 1
Loop
End


Gruß, Benny.
OP #993618
Hi Leute,

ups, hatte ich vergessen zu sagen. Ich habe ja das STK500 Board. Hab das 
schon abgesteckt und die Bahnen durchgepiepst, alles ok.

Dann habe ich den µC wieder eingesteckt und die Spannungen gemessen. 
Also die LEDs zeigen schon das an was der IC ausgibt, das passt soweit. 
Allerdings gibt der IC nicht das aus was im Programm steht. Eigentlich 
sollte der doch den kompletten PortB blinken lassen. Aber es blinken nur 
die LEDs an PortB.0 und PortB.4, das konnte ich dann durch messen auch 
bestätigen.

Allerdings bringt mich das jetzt auch nicht weiter.

Kann es sein das der µC nen Schuss hat weil ich nicht ESD geschützt war? 
Ich habe zwar ESD Schutz in meiner Werkstatt, habe das STK500 aber in 
meinem Büro wegen dem Notebook aufgebaut.
Und ist das STK500 selbst auch empfindlich?


@skua

Was meinst Du mit "P."? Den Prozzi? Ok, werd ich machen. Mal sehen was 
sich dann ergibt. Hab ja zum Glück noch ein paar hundert von den attinys 
da.


@travelrec

Gute Frage, ich habe das "DDRB = $b11111111" von der Roland Walter 
Homepage. Und das hat auch bisher gut geklappt. Aber mal anders herum 
gefragt ist es mir nicht klar was das "$" oder die "0" vor dem "B" zu 
bedeuten hat.


Gruß, Benny.
#993638
Benjamin Klyeisen wrote:
> Aber mal anders herum
> gefragt ist es mir nicht klar was das "$" oder die "0" vor dem "B" zu
> bedeuten hat.

Das ist natürlich keine geeignete Voraussetzung, damit ein Programm 
funktioniert.
Man sollte seine Programmiersprache schon beherrschen (und nicht 
umgekehrt).
Bzw. ganz einfach mal in der Hilfe nachschlagen.

Bisher scheint unter den Antwortern auch kein Bascom-Crack zu sein 
(steht ja auch nicht im Topic, daß es um Bascom geht).
Ich könnte Dir auch nur zeigen, wie es in C oder Assembler geht.
Du könntest ja mal das Assembler-Listing von Deinem Bascom posten.


Peter
Gast #993640
Wenn Du ein $ Zeichen benutzt, denkt der Compiler, daß alles was danach 
kommt in ASM gemeint ist. Syntaktisch ist das kein Fehler, aber logisch.

MfG Paul
OP #993659
@ Peter

Hi, ja, ich sagte ja schon bereits das ich blutiger Anfänger bin. Das 
mit dem $ war jetzt schon blöd. Aber das & sieht bei mir auf dem 
Bildschirm irgendwie abgeschnitten aus und ist schlecht als dieses 
erkennbar. Naja, auf jeden Fall werde ich das jetzt nochmals testen und 
hoffe dann das das der Fehler war, oder einfach nur der µC hin ist und 
ein Austausch geholfen hat. Ich werd das dann hier posten.

Ich hab ja noch nicht viel mit Bascom gemacht, aber Deine Bulletproof 
Tasterentprellung hab ich mir gleich mal als Bascom Code kopiert. Den 
werd ich bestimmt noch irgendwann gebrauchen :-)
Allerdings muss ich das vorher alles erst mal verstehen.

Wie sieht das hier allgemein aus, gibt es hier ein paar Bascom-Profis?


Gruß, Benny.
#993668
Bin zwar kein BASCOM crack aber das wird so sein.

Das &B ist die Einleitung einer Binärzahl.
Mit $ leitet man Hexzahlen ein.


$B11111111 = &B101100010001000100010001000100010001
Und jetzt schlägt noch der BASCOM zu.

Dim A as Byte

A = $B11111111
ergibt fehlermeldung

DDRB = $B11111111
ergibt keine fehlermeldung obwohl DDRB auch Byte ist merkt BASCOM aber 
nicht sonder nimmt einfach das untere Byte.

Wenn man
Dim A as Long
A = $B11111111
nimmt
wird A zu 00010001000100010001000100010001

Eigentlich mußte der compiler hier auch meckern
aber einfach wegwerfen ist einfacher.


Und keine Angst!
Du bist nicht der einzige Blinde hier.
Man sieht halt was man sehen will.
OP #993928
Hi,

ok, es hat sich erledigt. Es war tatsächlich das "$" das Problem. ls ich 
ein "&" daraus gemacht habe ging es. Och menno, immer müssen die blöden 
Computer recht haben und der User ist der Dumme ;-)

Aber danke an alle!


Gruß, Benny.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 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.