www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik C167 Starterkit Speicherbereichfrage


Autor: Baggacfreak Baggacfreak (baggacfreaks)
Datum:

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

Autor: Ronny (Gast)
Datum:

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

Autor: Baggacfreak Baggacfreak (baggacfreaks)
Datum:

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

Autor: Ronny (Gast)
Datum:

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

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.