Autor |
Led Matrix ansteuerung klappt prima......außer diese eine reihe... Suche nach: led (32581) |
|
|
|
|
BID = 394389
bastelheini Schriftsteller
Beiträge: 618 Wohnort: Sachsen
|
|
hallo ich habe ein problem mit einer schaltung mit der ich eine 5x7 led matrix ansteuere…..ein atmega8 steuert das ganze…….über insgesammt 12 pins (5+7 =zeilen und spalten) steuere ich transistoren an die in kombination von je 2 eine led aufleuchten lassen…….das ganze funktioniert auch wunderbar…..nur meine 2. reihe leuchtet ständig……also immer der punkt in der 2. reihen dessen zugegöriger spaltentreibertransistor durchschaltet….ich habe diesen transistor schon probeweise an einen anderen port gehängt und entsprechend programmiert (mit bascom)…..da ging es einwandfrei……..
nun meine frage: warum ist dieser port (Pd.1)ständig an obwohl ich ihn per software auf low setze???bei den anderen klappt es ja auch?
danke
_________________
-----------------------------
---MfG Bastelheini---
----------------------------- |
|
BID = 394403
Humus Aus Forum ausgetreten
|
|
Hey,
dein Quellcode und der Schaltplan wären vielleicht ganz gut! |
|
BID = 394421
Her Masters Voice Inventar
Avatar auf fremdem Server ! Hochladen oder per Mail an Admin
Beiträge: 5308 Wohnort: irgendwo südlich von Berlin
|
D1 ist auch der TXD der UART. Haste Selbige abgeschaltet?
_________________
Tschüüüüüüüs
Her Masters Voice
aka
Frank
***********************************
Der optimale Arbeitspunkt stellt sich bei minimaler Rauchentwicklung ein...
***********************************
|
BID = 394423
bastelheini Schriftsteller
Beiträge: 618 Wohnort: Sachsen
|
ich glaube daran könnte es liegen........ich wusste aber nicht wozu das da ist (irgendwas mit kommunikation...) und auch nicht wie man das auschalten kann.....der "RXD" port geht ja ohne abschalten......kannst du mir verraten wie ich das anstellen kann???
.....der schaltplan sieht hundmisserabel aus.....ich weiß.....aber ich denke den grundgedanken kann man erkenne.....
die zeilen hängen an pd.0 bis pd.7 (oben die 7 transistoren)
und die zeilen an pc.0 bis pc.4
der code:
$regfile = "m8def.dat"
$crystal = 8000000
$baud = 1200
Ddrd = &B11111111
Ddrc = &B11111111
Portc = &B0000000
Portd = &B0000000
Dim A As Integer
'Spalte 1 an
A:
Portc = &B0000001
Portd.7 = 0
Portd.0 = 1
Waitus 25
Portd.0 = 0
Portd.1 = 1
Waitus 25
Portd.1 = 0
Portd.2 = 1
Waitus 25
Portd.2 = 0
Portd.3 = 1
Waitus 25
Portd.3 = 0
Portd.4 = 1
Waitus 25
Portd.4 = 0
Portd.5 = 1
Waitus 25
Portd.5 = 0
Portd.6 = 1
Waitus 25
Portd.6 = 0
Portd.7 = 1
Waitus 25
Portd.7 = 0
Portd.0 = 1
Waitus 25
Portd.0 = 0
Portd.1 = 1
Waitus 25
Portd.1 = 0
Portd.2 = 1
Waitus 25
Portd.2 = 0
Portd.3 = 1
Waitus 25
Portd.3 = 0
Portd.4 = 1
Waitus 25
Portd.4 = 0
Portd.5 = 1
Waitus 25
Portd.5 = 0
Portd.6 = 1
Waitus 25
Portd.6 = 0
Portd.7 = 1
'Spalte 2 an
Portc = &B0000010
Portd.7 = 0
Portd.0 = 1
Waitus 25
Portd.0 = 0
Portd.1 = 1
Waitus 25
Portd.1 = 0
Portd.2 = 1
Waitus 25
Portd.2 = 0
Portd.3 = 1
Waitus 25
Portd.3 = 0
Portd.4 = 1
Waitus 25
Portd.4 = 0
Portd.5 = 1
Waitus 25
Portd.5 = 0
Portd.6 = 1
Waitus 25
Portd.6 = 0
Portd.7 = 1
Waitus 25
Portd.7 = 0
Portd.0 = 1
Waitus 25
Portd.0 = 0
Portd.1 = 1
Waitus 25
Portd.1 = 0
Portd.2 = 1
Waitus 25
Portd.2 = 0
Portd.3 = 1
Waitus 25
Portd.3 = 0
Portd.4 = 1
Waitus 25
Portd.4 = 0
Portd.5 = 1
Waitus 25
Portd.5 = 0
Portd.6 = 1
Waitus 25
Portd.6 = 0
Portd.7 = 1
'Spalte 3 an
Portc = &B0000100
Portd.7 = 0
Portd.0 = 1
Waitus 25
Portd.0 = 0
Portd.1 = 1
Waitus 25
Portd.1 = 0
Portd.2 = 1
Waitus 25
Portd.2 = 0
Portd.3 = 1
Waitus 25
Portd.3 = 0
Portd.4 = 1
Waitus 25
Portd.4 = 0
Portd.5 = 1
Waitus 25
Portd.5 = 0
Portd.6 = 1
Waitus 25
Portd.6 = 0
Portd.7 = 1
Waitus 25
Portd.7 = 0
Portd.0 = 1
Waitus 25
Portd.0 = 0
Portd.1 = 1
Waitus 25
Portd.1 = 0
Portd.2 = 1
Waitus 25
Portd.2 = 0
Portd.3 = 1
Waitus 25
Portd.3 = 0
Portd.4 = 1
Waitus 25
Portd.4 = 0
Portd.5 = 1
Waitus 25
Portd.5 = 0
Portd.6 = 1
Waitus 25
Portd.6 = 0
Portd.7 = 1
'Spalte 4 an
Portc = &B0001000
Portd.7 = 0
Portd.0 = 1
Waitus 25
Portd.0 = 0
Portd.1 = 1
Waitus 25
Portd.1 = 0
Portd.2 = 1
Waitus 25
Portd.2 = 0
Portd.3 = 1
Waitus 25
Portd.3 = 0
Portd.4 = 1
Waitus 25
Portd.4 = 0
Portd.5 = 1
Waitus 25
Portd.5 = 0
Portd.6 = 1
Waitus 25
Portd.6 = 0
Portd.7 = 1
Waitus 25
Portd.7 = 0
Portd.0 = 1
Waitus 25
Portd.0 = 0
Portd.1 = 1
Waitus 25
Portd.1 = 0
Portd.2 = 1
Waitus 25
Portd.2 = 0
Portd.3 = 1
Waitus 25
Portd.3 = 0
Portd.4 = 1
Waitus 25
Portd.4 = 0
Portd.5 = 1
Waitus 25
Portd.5 = 0
Portd.6 = 1
Waitus 25
Portd.6 = 0
Portd.7 = 1
'Spalte 5 an
Portc = &B0010000
Portd.7 = 0
Portd.0 = 1
Waitus 25
Portd.0 = 0
Portd.1 = 1
Waitus 25
Portd.1 = 0
Portd.2 = 1
Waitus 25
Portd.2 = 0
Portd.3 = 1
Waitus 25
Portd.3 = 0
Portd.4 = 1
Waitus 25
Portd.4 = 0
Portd.5 = 1
Waitus 25
Portd.5 = 0
Portd.6 = 1
Waitus 25
Portd.6 = 0
Portd.7 = 1
Waitus 25
Portd.7 = 0
Portd.0 = 1
Waitus 25
Portd.0 = 0
Portd.1 = 1
Waitus 25
Portd.1 = 0
Portd.2 = 1
Waitus 25
Portd.2 = 0
Portd.3 = 1
Waitus 25
Portd.3 = 0
Portd.4 = 1
Waitus 25
Portd.4 = 0
Portd.5 = 1
Waitus 25
Portd.5 = 0
Portd.6 = 1
Waitus 25
Portd.6 = 0
Portd.7 = 1
Goto A
und ja ich weiß das ich immer die hälfte des codes rauslassen kann da er sich wiederholt....
im anhang auch noch mal die matrix als prinzip
_________________
-----------------------------
---MfG Bastelheini---
-----------------------------
|
BID = 394437
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
Eieiei..
So kann man das natürlich auch machen .
Schau mal in der Hilfe nach, wie man die UART deaktiviert.
Wenn sie angeschaltet ist, ist TX immer High, da hat HMV schon ganz Recht.
Sonst musst du mal das Datenblatt aufschlagen, dann siehst du, dass man das Bit TXEN im Register UCSRB löschen muss, damit der Transmitter den Port freigibt.
Zitat :
|
• Bit 3 – TXEN: Transmitter Enable
Writing this bit to one enables the USART Transmitter. The Transmitter will override normal
port operation for the TxD pin when enabled. The disabling of the Transmitter
(writing TXEN to zero) will not become effective until ongoing and pending transmissions
are completed (i.e., when the Transmit Shift Register and Transmit Buffer Register
do not contain data to be transmitted). When disabled, the Transmitter will no longer
override the TxD port.
|
Oder, wenn das zu kompliziert ist schaltest du einfach per Bascom den UART ab; wie das geht, steht in der Hilfe.
_________________
|
BID = 394442
bastelheini Schriftsteller
Beiträge: 618 Wohnort: Sachsen
|
wie hättest du es denn gemacht?
_________________
-----------------------------
---MfG Bastelheini---
-----------------------------
|
BID = 394443
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
Anders .
Ne, ich hätte das Programm in Assembler und mit Timer geschrieben. Wird kürzer und der Prozessor kann nebenbei noch andere Sachen erledigen.
Aber darauf kommt es hier ja erstmal nicht an, hauptsache, die Matrix funktioniert
_________________
|
BID = 394450
bastelheini Schriftsteller
Beiträge: 618 Wohnort: Sachsen
|
och ja ich war erst mal froh das es überhaupt lief....*g* wenn ich heut mal zeit hab guck ich wie das abzuschalten geht.....
edit:
so hier???
RESET UCR.3 schaltet TXD aus
RESET UCR.4 schaltet RXD aus
_________________
-----------------------------
---MfG Bastelheini---
-----------------------------
[ Diese Nachricht wurde geändert von: bastelheini am 23 Dez 2006 17:52 ]
|
BID = 394452
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
Hmm.
Habe lange nichts mehr mit BASCOM gemacht, aber so sollte es gehen. Sonst halt so:
UCSRB = UCSRB AND 0b11100111
_________________
|
BID = 394453
bastelheini Schriftsteller
Beiträge: 618 Wohnort: Sachsen
|
ich werds probieren....danke! muss mir jetzt erst mal in vb nen hilfsprogram bauen das mir die pins ausgibt.......je nachdem welche grafik ich hamm möchte.....
_________________
-----------------------------
---MfG Bastelheini---
-----------------------------
|
BID = 394507
Her Masters Voice Inventar
Avatar auf fremdem Server ! Hochladen oder per Mail an Admin
Beiträge: 5308 Wohnort: irgendwo südlich von Berlin
|
Ich mach ja nix mit BASCOM (eher FastAVR) aber wenn man oben den BAUD Befehl reintut wird IMO die UART initialisiert, also auch TXD eingeschaltet. Vielleicht hätte es ja schon gereicht diese Zeile einfach wegzulassen wenn man eh nix serielles machen will.
_________________
Tschüüüüüüüs
Her Masters Voice
aka
Frank
***********************************
Der optimale Arbeitspunkt stellt sich bei minimaler Rauchentwicklung ein...
***********************************
|
BID = 395879
bastelheini Schriftsteller
Beiträge: 618 Wohnort: Sachsen
|
hi ich noch mal....der tip war gut......hab die zeile rausgelassen und schon gehts.....danke!
_________________
-----------------------------
---MfG Bastelheini---
-----------------------------
|
BID = 402598
o_tom Gelegenheitsposter
Beiträge: 57 Wohnort: 38173
|
wow.....klasse, hier sind user die sich gut damit auskennen....
ich hatte mal vor längere zeit hier einen wunsch gepostet, kam leider nichts was meinen wünschen nah kam.
ich frage hier nochmal.....
ich habe da einen bausatz für eine led matix mit der entsprechender software...... die software läßt nur zu, das die schrift von rechts nach links läuft sowie die geschwindigkeit läßt sich einstellen...
kann man die software umprogrammieren, so dass ich dann auch die schrift von links nach recht laufen lassen kann, aus der mitte nach aussen........ usw.
oder gibt es da noch ganz andere möglichkeiten......
gruß thomas
|
BID = 402601
LeoLöwe reloaded Schreibmaschine
Beiträge: 1407 Wohnort: Meine
|
Naja, ein µC kann immer nur so viel, wie sein Programmierer auch.
Will sagen, eine Zeile ändern und der Text rennt rückwärts geht nicht. Das musst du schon selber schreiben...
_________________
We now return you to your regularly scheduled nonsense.
|