mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik I/O´s schalten (only bascom)


Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn es nur um 3 LEDs geht und nicht der ganze Port auf einmal geändert 
werden muss, dann ist die Methode

  Config Pinc.5 = Output
  Portc.5 = 0

wohl am besten. Wobei du die Richtungseinstellung des Ports natürlich 
nicht jedes Mal neu machen musst.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.