I/O´s schalten (only bascom)

Gast #24126
Hallo,

ich benutze Bascom AVR Demo mit einem 8535.


so nun hab ich mal ne Frage:

Ich habe 3 Led`s an Portc.5 - c.7.
erst habe ich die Led's mittels Constante also &B00011111 eingeschaltet.

Programmausschnitt:

Const Ledson = &B00011111
Config Portc = Output

portc = ledson
end

spaeter hab ich es lieber mit folgenden zeilen gemacht....

Config Pinc.5 = Output
Reset Portc.5

usw.

dann kam ich auf idee es wie folgt zu machen:

Config Pinc.5 As Output Pinc.5 = 1

usw.

Welcher Weg ist der richtige?


Wegen einem Firmenprojekts wollte ich gerne ein µC nehmen....
Ich sollte 4 ADC Spannungen messen + 4 Leiterbahnen testen auf Durchgang 
und auf Kurzschluss an den Connectoren.

Ich hab es wie folgt geloest. Auschnitt aus dem Prg. :

Const Test1 = &B10101010                                    'Testmuster1
Const Test2 = &B01010101                                    'Testmuster2
Const Maske = &B00001111           'Maske fuer ungewollte Eingaenge
Config Portc = Input                                        'Eingaenge 
Leitungstester
Config Portb = Output
portc = 255
C = Test1 And Maske                                         'erstes 
Testmuster generieren
Portb = c                                                   'Testmuster 
auf Ausgang geben
D = Pinc And Maske                                          'Eingaenge 
lesen und ungewollte Eingaenge ingnorieren
If D = C Then
Ok = 1

dann das gleiche mit dem zweiten Testmuster.... Ich habe die Maske 
erstellt da ich nur 4 I/O`s benutze.
Es funktionierte auch alles wunderbar!
soweit so gut.... nun wollte ich mit Portc.4 ein Stabi der ein CTL 
Eingang hat ansteuern ( braucht 5 V TTL Impuls zum starten).

Da ich aber den Port auf Input gestellt hatte bzw. ueber die Testmaske 
zunichte gemacht hatte konnte ich den nicht nutzen....

So nun zu meiner Frage.

Wuerde es nicht viel leichter gehen wenn ich es wie folgt mache:

Config Pinb.0 As output Pinb.0 = 0
config pinb.1 as output pinb.1 = 1
config pinb.2 as output pinb.2 = 0
config pinb.3 as output pinb.3 = 1

config pinc.0 as input
config pinc.1 as input
config pinc.2 as input
config pinc.3 as input

Nun sollte ich den Input Port auf 255 legen, damit die internen Pullups 
geschaltet sind und das Bitmuster stabil bleibt.

Portc = 255

So nun zu meinen vielen Fragen....

wie lese ich das bitmuster was von Pinb.0 - Pinb.3 kommt auf Pinc.0 -c.3 
ein?

wenn ich den Portc = 255 setze kann ich den Pinc.4 noch zur Erzeugung 
des 5V Impulses nutzen?

Sry ich bin blutiger Anfaenger und ich hatte grosse Hilfe beim 
eigentlichen Programm was funktioniert und kapier auch noch nicht 100 % 
alles ....

Um meine Fragestellung zuvereinfachen ich wollte nur 4 I/O`s 
verschwenden .... aber dank Testmuster Constante und Maske benutze ich 
die vollen 8 I/O's die ich gerne fuer was anderes benutzen wollte ohne 
staendig hin und her zuschalten.... Ich hoffe ihr habt kapiert was ich 
will und koennt mir nen bissel helfen....

Danke....

nochmal danke an lieben Mitmenschen der mich wenigstens schon soweit 
gebracht hat.

Antwort schreiben

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