Forum: Mikrocontroller und Digitale Elektronik Hilfe bei programmieren mit Basic [für Matrixanzeige]


von Ironkekz (Gast)


Lesenswert?

Guten Tag,
ich habe folgende Schaltung erfolgreich aufgebaut und programmiert:
[eine Matrixanzeige]
http://www.dieelektronikerseite.de/uC%20Ecke/Lections/Matrixanzeigen%20-%20LEDs%20in%20Reih%20und%20Glied.htm

Das Programm:

$regfile "m8def.dat"
$crystal = 1000000

'### Variablendefination für Zeichengenerator
Dim Dispcol As Byte
Dim Dispcnt As Byte
Dim Bitbld As Byte
Dim Chradr As Word
Dim Charnr As Byte


'### Konfiguration für Display
Config Portd = Output
Config Portc = Output


Dispcnt = 0 : Dispcol = 1 : Charnr = 65

'### Hauptprogramm: Zeichenanzeige
Do
  Chradr = Charnr - 32 : Chradr = Chradr * 5 : Chradr = Chradr + Dispcnt
  Bitbld = Lookup(chradr , Chartab)
  Portc = Dispcol : Portd = Bitbld : Waitms 1
  Incr Dispcnt : Dispcnt = Dispcnt Mod 5
  Shift Dispcol , Left : If Dispcol = 32 Then Dispcol = 1
Loop


'### Zeichensatztabelle
Chartab:
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00000000 ' 
32=spc
Data &B00000000 , &B00000000 , &B01011111 , &B00000000 , &B00000000 ' 
33=!
Data &B00000000 , &B00000011 , &B00000000 , &B00000011 , &B00000000 ' 
34=Bracket
Data &B00010100 , &B01111111 , &B00010100 , &B01111111 , &B00010100 ' 
35=#

u.s.w...

Ich möchte durch einen Input festlegen welches Zeichen angezeigt wird. 
Ich dachte mir Port B als Input zu benutzen. Leider Kann ich nicht 
selbst programme schreiben, weil ich keine Programmiersprache kann. Ich 
weiß auch nicht welche spannung ich an port b dann als signal anlegen 
soll. Wäre super wenn mir jemand sagt wie die Schaltung dazu aussehen 
soll und mir das Programm schreiben könnte ;D
MFG Iron

von Ironkekz (Gast)


Lesenswert?

das hab ich noch vergessen...
ich dachte mir das zeichen durch ein 7stelligen code festzulegen. um ein 
ausrufezeichen darzustellen müsste man an port B also 0100001 anlegen. 
Also immer nach dem ascii-code. wenn ich das richtig verstanden habe ist 
Chradr der wert der das zeichen definiert. Man müsste dem 
microcontroller also iwie sagen wie er von 0100001 auf 33 kommt. Ich 
hoffe ihr versteht was ich meine. Aber da ich wirklich nur mit 
vorgegebenen Programmen arbeiten kann wäre es super wenn mir jemadn das 
Programm schreiben kann. Vielen Dank ;D

MFG Iron

von Otto (Gast)


Lesenswert?

Hallo,

Da brauchst Du gar nichts zu machen denn 0100001 sind 33

Der Port benötigt 5V-Pegel.

Otto

von Ironkekz (Gast)


Lesenswert?

Danke für deine Antwort!
also reicht es, wenn ich das schreibe?
Do
  For Charnr = 32 To 127
    For Cnt = 0 To 500
      Chradr = Portb
      Bitbld = Lookup(chradr , Chartab)
      Portc = Dispcol : Portd = Bitbld : Waitms 1
      Incr Dispcnt : Dispcnt = Dispcnt Mod 5
      Shift Dispcol , Left : If Dispcol = 32 Then Dispcol = 1
    Next Cnt
  Next Charnr
Loop

von Otto (Gast)


Lesenswert?

Erkläre mir bitte den Sinn der 2 Schleifen (Charnr und Cnt) - Du mußt 
nur mit dem vom Port eingelesenen ASCII-Wert auf Deine Lookup-Table 
zugreifen.

Oder hast Du mehrere Displays, welche Du ansteuern möchtest ?

von Ironkekz (Gast)


Lesenswert?

nun ja ... deswegen frag ich ja ob mir jemand das programm schreiben 
kann^^ ich weiß zu wenig von Microcontrollern und Programmiersprachen. 
Ich bin 9te Klasse auf dem Gymnasium ;D Aber ich kann meinen Atmega8 
flaschen und schaltungen aufbauen =)

Ich habe nur eine Matrixanzeige und möchte ein Zeichen durch den input 
vorgeben und dieser soll dann dargestellt werden. Alles gemäß dem assci 
code. Momentan versuche ich das Programm aus dem Tutorial von der seite 
oben so zu verändern,dass es meinem Wunsch entspricht, aber das klappt 
leider nicht. Ich bitte weiter um Hilfe

Iron

von Otto (Gast)


Lesenswert?

Das Originalprogramm zeigt Dir ein "A" an, welches durch "Charnr = 65" 
vorgegeben wurde.

- Konfiguriere Port B als Input
- Lies in der "DO"-Schleife Deinen Port B ein
- Setze Charnr = Portb (oder heißt das in Basic auch Pinb?)

Achtung: ich programmiere nicht in Basic - die Feinheiten musst Du 
ausknobeln.

von Ironkekz (Gast)


Lesenswert?

Hört sich ja einfach an ^^ aber es klappt nicht könnte mir vl jemand das 
programm dem entsprechend umschreiben? ich würde mich echt sehr freuen . 
Danke ;D

von Otto (Gast)


Lesenswert?

Hast Du mal: Charnr = Pinb eingefügt ?

von Otto (Gast)


Lesenswert?

> aber es klappt nicht

ist ein bischen dünn:

- was klappt nicht ?
- was hast Du gemacht ?
- was ist passiert ?

von Ironkekz (Gast)


Lesenswert?

Also ich habe jetzt mehrmals versucht eine art Befehl wie Charnr=PORTB 
zu finden. Außerdem habe ich "Config PORTB=input" hingeschrieben.
->auf atmega übertragen
->sinnloses gewusel auf der Matrixanzeige
->spannung auf portb.6 gegeben
->keine veränderung

ich habe das auch mit einem interrupt versucht

$regfile "m8def.dat"
$crystal = 1000000

'### Variablendefination für Zeichengenerator
Dim Dispcol As Byte
Dim Dispcnt As Byte
Dim Bitbld As Byte
Dim Chradr As Word
Dim Charnr As Byte


'### Variablendefination für Hauptprogramm
Dim Cnt As Byte

Dispcnt = 0 : Dispcol = 1



MFG Iron

'### Konfiguration für Display
Config Portd = Output
Config Portc = Output


'### Timersteuerung für Multiplexansteuerung konfigurieren
Config Timer0 = Timer , Prescale = 8
Enable Timer0

On Timer0 Refresh_display
Enable Interrupts


'### Hauptprogramm: Zeichenanzeige
Config Portb = Input


Charnr = portb





'### Interrupt-Routine: Multiplexsteuerung des Displays
Refresh_display:
  Chradr = Charnr - 32 : Chradr = Chradr * 5 : Chradr = Chradr + Dispcnt
  Bitbld = Lookup(chradr , Chartab)
  Portc = Dispcol : Portd = Bitbld
  Incr Dispcnt : Dispcnt = Dispcnt Mod 5
  Shift Dispcol , Left : If Dispcol = 32 Then Dispcol = 1
Return


'### Zeichensatztabelle
Chartab:
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00000000 
' 32=spc
Data &B00000000 , &B00000000 , &B01011111 , &B00000000 , &B00000000 
' 33=!
Data &B00000000 , &B00000011 , &B00000000 , &B00000011 , &B00000000 
' 34=Bracket

von Ironkekz (Gast)


Lesenswert?

Man kann ein wildes Blinken sehn  aber es scheint ein wenig darauf zu 
reagieren. Je nachdem ob mein ein signal an einen Port anlegt leuchten 
ein paar leds mehr oder weniger auf.
Iron

von Otto (Gast)


Lesenswert?

Zuerst einmal brauchst Du einen Input nicht zu definieren, wie ich 
mittlerweile las.

Weiterhin solltest Du das Eingangs genannte Programm dahingehend 
modifizieren, dass Du den Port einliest - das müsste mit Charnr = Pinb 
funktionieren - ansonsten sieh in der BASCOM-Hilfe nach.

Drittens musst Du sicherstellen, dass am Eingang auch wirklich das 
gewünschte Muster anliegt - es reicht nicht, zwei Leitungen für "33" 
daran zu basteln, sondern Du musst sicherstellen, dass alle Leitungen 
des Ports definierte Pegel (also "0" oder "1") haben - ggf. 
Pull-down-Widerstände einsetzen.

Wildes ausprobieren bringt nichts ausser Zeitverlust - nimm das Programm 
aus Deinem 1. Post und lies den Port ein - das war es.

von Otto (Gast)


Lesenswert?

Do

  Charnr = Pinb

  Chradr = Charnr - 32 : Chradr = Chradr * 5 : Chradr = Chradr + Dispcnt
  Bitbld = Lookup(chradr , Chartab)
  Portc = Dispcol : Portd = Bitbld : Waitms 1
  Incr Dispcnt : Dispcnt = Dispcnt Mod 5
  Shift Dispcol , Left : If Dispcol = 32 Then Dispcol = 1
Loop

von Ironkekz (Gast)


Lesenswert?

OK vielen Dank ich werds gleich ausprobieren
ich poste dann das ergebniss

Iron

von Ironkekz (Gast)


Lesenswert?

aus dem tutorial : "Die beiden Taster werden wieder gegen Null 
geschaltet, damit wir die AVR-eigenen Pullup-Widerstände verwenden 
können."

was ist mit gegen Null schalten gemeint? heißt das ich brauche keine 
widerstände? Da Portb 8bits hat und ich nur 7bits brauche, was mache ich 
dann mit dem übrigen?
Iron

von Otto (Gast)


Lesenswert?

Du möchtest das anzuzeigende Zeichen mit Tastern anzeigen ?

Bitte beschreibe genau, mit wieviel Tastern und wie das genau 
funktionieren soll.

Die Pull-Up des Controllers nimmt man, um externe Widerstände zu sparen.

Wie genau soll das funktionieren - Du müsstest die Taster ja dann gemäß 
ASCII-Tabelle betätigen - bis zu 7 gleichzeitig.

Wenn Du nur 7 bit auswerten müchtest, kannst Du das 8. ausmaskieren, 
indem Du z. B. "Charnr" mit 127 (= 0111 1111) verundest.

von Ironkekz (Gast)


Lesenswert?

ich habe mir ein Lochstreifenlesegerät gebastelt. Das ganze dient nur 
der veranschaulichung, d.h. ich stelle nur einen kleinen Lochstreifen 
her. Das ein langer lochstreifen zu aufwändig ist ist mir klar ;)

Ich beschäftige mich damit, weil wir grade die codes in Informatik 
behandeln.

Ein problem könnte sein, wenn der lochstreifen beim durchziehen ein 
sinnloses Signal durchgibt, dass die anzeige dann spinnt. Also habe ich 
die Chartabelle um 31 stellen erweitert und das "-32" bei chradr 
weggelassen:

Do

  Charnr = Pinb

  Chradr = Charnr : Chradr = Chradr * 5 : Chradr = Chradr + Dispcnt
  Bitbld = Lookup(chradr , Chartab)
  Portc = Dispcol : Portd = Bitbld : Waitms 1
  Incr Dispcnt : Dispcnt = Dispcnt Mod 5
  Shift Dispcol , Left : If Dispcol = 32 Then Dispcol = 1
Loop


'### Zeichensatztabelle
Chartab:
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00000000
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00000001
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00000010
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00000011
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00000100
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00000101
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00000110


usw.


MFG Ironkekz

von Otto (Gast)


Lesenswert?

Wenn der Lochstreifenleser ein ordnungsgemäßes TTL-Signal ausgibt, 
sollte das funktionieren - wichtig ist nur, dass Du das Signal 
"zwischenspeicherst", bis der nächste gültige Wert gelesen wurde.....

von spess53 (Gast)


Lesenswert?

Hi

>Ein problem könnte sein, wenn der lochstreifen beim durchziehen ein
>sinnloses Signal durchgibt, dass die anzeige dann spinnt. Also habe ich
>die Chartabelle um 31 stellen erweitert und das "-32" bei chradr
>weggelassen:

Hättest du dir mit einem einfachen 'if Charnr >=32...' ersparen können.

MfG Spess

von Ironkekz (Gast)


Lesenswert?

hatte ich auch vor aber bascom hatt dann immer ne fehlermeldung 
geschickt. Wie gesagt ich hab keine ahnung vom Programmieren. Aber du 
könntest mir ja sagen wie es weiter gehen könnte nach if charnr <32...

Iron

von Otto (Gast)


Lesenswert?

ich denke, dass Dein Ziel ist das Programmieren zu lernen - oder ?

von spess53 (Gast)


Lesenswert?

Hi

>Wie gesagt ich hab keine ahnung vom Programmieren.

Und ich eigentlich keine Ahnung von BASCOM.

>hatte ich auch vor aber bascom hatt dann immer ne fehlermeldung
>geschickt.

Welche? Eine if-Anweisung sieht immer so aus:

if <Bedingung> then
 Code
end if

>Aber du könntest mir ja sagen wie es weiter gehen könnte nach
>if charnr <32...

Rate mal, warum ich 'if Charnr >=32...' angeraten habe? Da gibt es etwas 
zu tun. Bei deiner nicht.

MfG Spess

von Ironkekz (Gast)


Lesenswert?

eigentlich dürfte die anzeige, wenn kein signal anliegt doch auch nichts 
anzeigen. Stattdessen leuhten abwechelnd alle LEDs ein @ oder ein ?. Das 
ist zwar lustig aber nicht beabsichtig. Warum ist das so. wie kann ich 
das verhindern?

von spess53 (Gast)


Lesenswert?

Hi

>eigentlich dürfte die anzeige, wenn kein signal anliegt doch auch nichts
>anzeigen.

Wenn die Pins offen sind, fangen sie sich alle möglichen Pegel ein. 
Dagegen helfen Pull-Up- oder Pull-Down-Widerstände. Im einfachsten Fall 
dir internen Pull-Ups aktivieren:  'PortB=$FF'.

MfG Spess

von Ironkekz (Gast)


Lesenswert?

Also ich hab ihn jetzt so programmiert dass er wenn ein wert unter 32 
anliegt, er diesen also binärcode darstellen müsste. trotzdem danke ;)
Frage: Wie kommt der Atmega8 von der Binärzahl zur Dezimalzahl?
wenn pinb.0 = 1
pinb.1 = 1
und alles andere 0 ist müstte da doch 3 rauskommen ja?
Ich vertehe nicht warum die anzeige bei keinem Signal wie oben genannt 
reagiert. Ab welcher spannung zählt das signal als 1? Vielleicht fließt 
irgendein Schwachstrom?!?

MFG Iron

von Ironkekz (Gast)


Lesenswert?

Ok Danke Spess ;)
habs zu spät gelesen

von spess53 (Gast)


Lesenswert?

Hi

>Also ich hab ihn jetzt so programmiert dass er wenn ein wert unter 32
>anliegt, er diesen also binärcode darstellen müsste.

Wie?

>Frage: Wie kommt der Atmega8 von der Binärzahl zur Dezimalzahl?
>wenn pinb.0 = 1
>pinb.1 = 1
>und alles andere 0

Ergibt Binär 0b00000011. Und das ist 3.

>...ist müstte da doch 3 rauskommen ja?

Siehe oben.

MfG Spess

von Ironkekz (Gast)


Lesenswert?

Also hier nochmal das Programm

$regfile "m8def.dat"
$crystal = 1000000

'### Variablendefination für Zeichengenerator
Dim Dispcol As Byte
Dim Dispcnt As Byte
Dim Bitbld As Byte
Dim Chradr As Word
Dim Charnr As Byte


'### Variablendefination für Hauptprogramm
Dim Cnt As Byte

Dispcnt = 0 : Dispcol = 1


'### Konfiguration für Display
Config Portd = Output
Config Portc = Output
Portb = $ff


Do

  Charnr = Pinb

  Chradr = Charnr : Chradr = Chradr * 5 : Chradr = Chradr + Dispcnt
  Bitbld = Lookup(chradr , Chartab)
  Portc = Dispcol : Portd = Bitbld : Waitms 1
  Incr Dispcnt : Dispcnt = Dispcnt Mod 5
  Shift Dispcol , Left : If Dispcol = 32 Then Dispcol = 1
Loop


'### Zeichensatztabelle
Chartab:
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00000000
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00000001
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00000010
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00000011
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00000100
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00000101
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00000110
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00000111
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00001000
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00001001
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00001010
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00001011
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00001100
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00001101
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00001110
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00001111
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00010000
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00010001
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00010010
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00010011
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00010100
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00010101
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00010111
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00011000
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00011001
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00011010
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00011011
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00011100
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00011101
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00011110
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00011111
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00000000 
' 32=spc
Data &B00000000 , &B00000000 , &B01011111 , &B00000000 , &B00000000 
' 33=!
Data &B00000000 , &B00000011 , &B00000000 , &B00000011 , &B00000000 
' 34=Bracket
Data &B00010100 , &B01111111 , &B00010100 , &B01111111 , &B00010100 
' 35=#
Data &B00100110 , &B01001001 , &B01111111 , &B01001001 , &B00110010 
' 36=$
Data &B00100011 , &B00010011 , &B00001000 , &B01100100 , &B01100010 
' 37=%
Data &B00110010 , &B01001101 , &B01010010 , &B00100000 , &B00010000 
' 38=&




Nun leuchten alle LEDs wenn kein signal anliegt....


also nur noch mal zur Sicherheit

Portb.0=1 heißt 00000001
Portb.1=1 heißt 00000010
Portb.2=1 heißt 00000100
Portb.3=1 heißt 00001000
Portb.4=1 heißt 00010000
Portb.5=1 heißt 00100000
Portb.6=1 heißt 01000000
Portb.7=1 heißt 10000000

und die ports sind dort wie auf diesem bild beschriben: 
http://www.rn-wissen.de/index.php/Bild:Pinbelegungmega8.gif



Ich bin ratlos...

MFG Iron

von Ironkekz (Gast)


Lesenswert?

Der Link oben geht scheinbar nicht.
http://www.rn-wissen.de/index.php/ATMega8

von Otto (Gast)


Lesenswert?

Was ist jetzt genau das Problem ?

von Ironkekz (Gast)


Lesenswert?

verienfacht gesagt die anzeige zeigt nicht an was sie soll. es scheint 
als sei der richtige charnr-Wert nich mit dem richtigen zeichen 
verknüpft...

von Otto (Gast)


Lesenswert?

Also für "3" hast Du in Deiner Tabelle auch kein Muster definiert - oder 
?

Eine Binärzahl ist eine Dezimalzahl - es ist nur eine andere Art der 
Darstellung.

von spess53 (Gast)


Lesenswert?

Hi

>Nun leuchten alle LEDs wenn kein signal anliegt....

Wenn kein Signal anliegt und die internen Pull-Ups eingeschaltet sind 
ist das Eingangssignal $FF. Dafür existiert aber kein Eintrag in deiner 
Tabelle.

Evtl. hilft das:

Charnr = Pinb and $7F

MfG Spess

von Ironkekz (Gast)


Lesenswert?

Ich habe das jetzt mal mit dem IF befehl geschrieben:

'### Konfiguration für Display
Config Portd = Output
Config Portc = Output
Portb = $ff


Do
  If Pinb > 32 Then
  Charnr = Pinb and $7F
  End If

  If Pinb < 32 Then
  Charnr = 32
  End If

  Chradr = Charnr -32 : Chradr = Chradr * 5 : Chradr = Chradr + Dispcnt
  Bitbld = Lookup(chradr , Chartab)
  Portc = Dispcol : Portd = Bitbld : Waitms 1
  Incr Dispcnt : Dispcnt = Dispcnt Mod 5
  Shift Dispcol , Left : If Dispcol = 32 Then Dispcol = 1
Loop


und die Tabbelle beginnt wieder erst beim 32ten Eintrag. Meinst du das 
könnte klappen?

von spess53 (Gast)


Lesenswert?

Hi

>  If Pinb > 32 Then
>  Charnr = Pinb and $7F
>  End If

>  If Pinb < 32 Then
>  Charnr = 32
>  End If

Eine IF-Anweisung kann auch einen Else-Zweig enthalten.

if <Bedingung> then
 Code für den die Bedingung zutrifft
else
 Code für den die Bedingung nicht zutrifft
end if

MfG Spess

von Ironkekz (Gast)


Lesenswert?

Och ich bin soo blöd ^^
es unktioniert eigentlich alles. ich habe nich daran geadacht , dass der 
port mit signal, 0 ist und nicht 1. und die ports ohne signal 1 
sind^^.... das lag jetzt an den Pull-Ups oder? kann ich das auch um 
gekehrt machen? es soll bei jedem signal auch eins am port heißen. sind 
das dann Pull-downs?. weißt du auch wie ich die aktivieren kann?
Vielen Dank - Ironkekz

von spess53 (Gast)


Lesenswert?

Hi

AVRs besitzen nur interne Pull-Ups. Pull-Downs müssen extern sein. Also 
von jedem Portpin ein Widerstand (z.B. 10k) nach Masse.

MfG Spess

von Ironkekz (Gast)


Lesenswert?

Ok vielen Dank
Ich denke soweit klappt dann alles ;D

MFG Iron

von Ironkekz (Gast)


Lesenswert?

könnte man nich einen mathematischen trick nehmen um die umgekehrten 
signale zu bekommen? so etwas wie
charn r= Pinb *(-1) and $7F
MFG Iron

von Peter (Gast)


Lesenswert?

charn r = not pinb
charn r = char r and $7f

von Otto (Gast)


Lesenswert?

Damit machst Du aber sicher nicht aus einem "pull-up" einen 
"pull-down".....

von Ironkekz (Gast)


Lesenswert?

aber wie dann? es muss doch eine Möglichkeit geben!

von Otto (Gast)


Lesenswert?

Widerstände (oder ein 9-poliges Widerstandsnetzwerk) zwischen den 
Portpins von Port B und GND einlöten.

von Ironkekz (Gast)


Lesenswert?

würde es nicht reichen die chartabelle von hinten nach vorne 
aufzuschreiben?

von Otto (Gast)


Lesenswert?

Du kannst die "Pull-Downs" nicht durch Software ersetzen - das geht 
einfach nicht.

von Ironkekz (Gast)


Lesenswert?

So das war es jetzt wirklich ;)
Indem man bei der tabelle unten und oben vertauscht (quasi gespiegelt) 
hat, konnte man die pull-ups benutzen. ist eigentlich ganz logisch wenn 
man weiß wie die buchstaben erzeugt werden. Ich habe noch 32 einträge 
mit dem entsprechendem wer als binärzahl, der tabelle hinzugefügt und 
dann die "-32" weggelassen. Nun Funktioniert alles einwandfrei.

Vielen Dank für eure Hilfe.

MFG IronKekz

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.