Forum: Mikrocontroller und Digitale Elektronik C167 Starterkit Speicherbereichfrage


von Baggacfreak B. (baggacfreaks)


Lesenswert?

Hi,

ich will im Speicher des c167 einige Datenpaare ablegen und später
wieder auslesen können. Wie genau sollte ich das machen. Die Datenpaare
dienen mir zur Linearisierung von einer NTC Kennlinie. Wollte mir
Wiederstand bzw. die gemessene Spannung und die dazugehörigen Werte
(Rohwerte) zum Ansteuern der Lüfter. Die Lüfter werden mit PWM und
Optokoppler angesteuert.

Datenbereich sollte dann so aussehen:
(Array wäre auch nicht schlecht oder?!?)

Wertepaar 1: Spannung1 Lüfterdrehzahl1
Wertepaar 2: Spannung2 Lüfterdrehzahl2
Wertepaar 3: Spannung3 Lüfterdrehzahl3

Und dann hab ich noch eine Frage wegen der Auswertung von Tastern:

Wir haben schon Pulldownwiderstände eingeplant, die den Port bei Taster
nicht betätigt auch wirklich auf GND ziehen (4,7kOhm). Auf welche Ports
sollte ich die Taster dann jetzt verbinden? Eher DI oder AI Abfrage
dann auf 0/1  oder auf 0/???? bzw. sieht der Quellcode dafür dann so
aus:

if (P5) ...
if (P5>200) ...

Habt ihr vielleicht auch noch eine Seite mit Dokumentation und
Quellcode Beispielen auf Deutsch? Mit dem englischen Handbuch ist das
so ein Ding!

CU!

von Ronny (Gast)


Lesenswert?

Also wie genau du die Taster anbindest,hängt von der Konfiguration
ab.Viele Ports können als Push/Pull oder OpenDrain konfiguriert
werden.Lies dirdazu mal Kapitel 7 im Datenblatt durch.

Abgefragt wird das ganze dann über BITWEISE Verknüpfungen:

if(PORT5%(1<<3)
 {
//  Pin 2,Port5 is aktiv,Pins 0...15
 }

Und,JA.Ein Array zur Speicherung der Werte wäre günstig.

von Baggacfreak B. (baggacfreaks)


Lesenswert?

Hi,

kannst du mir das mit den Ports ansteuern noch etwas besser erklären?
Ich habe unsere Taster mit 5V inzwischen an Port2 gehängt und die LEDs
schalten bei Tasterdruck da invertiert sich aus und wieder an sobald
man loslässt. Wie muss ich jetzt die 0/1 Stellung auslesen?

P20==1 geht scheinbar ja nicht!

müsste ich da

if (PORT2%(0<<1))
{
auszuführender Code hier rein
}

schreiben?

von Ronny (Gast)


Lesenswert?

Sorry,statt PORTx% muss es natürlich PORT& (kaufmännisches UND)
heissen.Zweck des ganzen ist es rauszubekommen,ob ein bestimmtes Bit
gesetzt ist.Schau dir dazumal die Wahrheitstabellen der logisch-UND
Verknüpfung an.

Ob du eine LED direkt an einen Port dranhängen kannst,hängt davon ab
welche Ströme dieser treiben bzw. aufnehmen kann.Laut
Datenblatt(welches du dir mal anschauen solltest!) ist 10mA schon das
absolute Maximum,also besser über zb. einen Transistor schalten.Und wie
die Taster drankommen (pullup oder pulldown oder nix) hängt davon ab,wie
deine Software die Eingabeports konfiguriert.

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.