www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Anfänger Frage - Programmieren C/C++


Autor: Hoast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi ich habe hier mal einen Auszug aus einem Programm, das ich gefunden 
habe.
Ich habe jetzt noch zum Testen zusätzlich PB0 aus PORTB als Eingang 
hinzugefügt und den Pull-Up Widerstand aktiviert. Stimmt das so? Habs 
wie bei den anderen auch gemacht. So nun möchte ich diesen in das 
uint8_t buttons aufnehmen. Wie mache ich das? Weil wenn ichs einfach so 
hinzufüge meckert Win AVR immer, das das nicht gültig wäre oder so.
Wäre super wen mir jemand helfen könnte!
Hier noch der entsprechende Code Ausschnitt:

/*
 * Initialize the hardware to read the button states.
 *
 * Set the ports to input with pullups enabled.
 */
void buttons_init(void) {
  DDRD &= ~(_BV(PD0) | _BV(PD1) | _BV(PD2) | _BV(PD3) | _BV(PD4) | 
_BV(PD5) | _BV(PD6));
  PORTD = _BV(PD0) | _BV(PD1) | _BV(PD2) | _BV(PD3) | _BV(PD4) | 
_BV(PD5) | _BV(PD6);
  DDRB &= ~(_BV(PB0));
  PORTB = _BV(PB0);
}

/*
 * Callback function from the rc5 module. This reads in the current 
button
 * state and returns the corresponding rc5 command code.
 */
uint8_t rc5_get_cmd(rc5_cmd_t *cmd) {
  uint8_t buttons = (~PIND) & (_BV(PD0) | _BV(PD1) | _BV(PD3) | _BV(PD4) 
| _BV(PD5) | _BV(PD6));

  *cmd = 0xff;

BTW wie poste ich denn so Codeausschnitte richtig?

Autor: Floh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hoast schrieb:
> BTW wie poste ich denn so Codeausschnitte richtig?

Als Dateianhang.

Hoast schrieb:
> Ich habe jetzt noch zum Testen zusätzlich PB0 aus PORTB als Eingang
> hinzugefügt und den Pull-Up Widerstand aktiviert. Stimmt das so? Habs
> wie bei den anderen auch gemacht. So nun möchte ich diesen in das
> uint8_t buttons aufnehmen. Wie mache ich das?

nun musst du den PIN einlesen, z.B. mit

buttons = (PINB & (1<<PB0));
  //buttons gleich 1 für Pin high, und 0 für pin low

Ansosnten schau mal ins AVR-gcc-Tutorial.

Autor: Hoast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mhm aber wie integriere ich das mit Komma, Strichpunkt, and oder wie 
geht das, dass er kapiert, dass er den Port auch  mit einbeziehen soll, 
definiert ist er ja oben schon.

Autor: eklige Tunke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Floh schrieb:
> Hoast schrieb:
>> BTW wie poste ich denn so Codeausschnitte richtig?
>
> Als Dateianhang.
Bei kleineren Schnipsel geht es auch inline...
[c]C-Code[/c]
Steht auch unter Formatierung und/oder (mehr Informationen...).

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hoast schrieb:
> Ich habe jetzt noch zum Testen zusätzlich PB0 aus PORTB als Eingang
> hinzugefügt und den Pull-Up Widerstand aktiviert. Stimmt das so? Habs
> wie bei den anderen auch gemacht.

Nein. Das ist weder richtig noch wie bei den anderen.

Hoast schrieb:
> Mhm aber wie integriere ich das mit Komma, Strichpunkt, and oder wie
> geht das, dass er kapiert, dass er den Port auch  mit einbeziehen soll,
> definiert ist er ja oben schon.

Nun, das ist ein längerer Prozess.

Schritt 1: Die Grundlagen von C lernen
Schritt 2: AVR Controller programmieren lernen

Das müsste in 4-6 Monaten hinzubekommen sein,wenn du dich dranhältst.

Jetzt wird es schwierig:

Schritt 3: Das "gefundene" Programm verstehen
Schritt 4: Herausfinden, was man tun muß, um eine weitere Taste 
hinzuzufügen
Schritt 5: Herausfinden, wie man in das Programm die Funktionen einbaut, 
die die zusätzliche Taste auslösen soll.

und schließlich

Schritt 7: Das alles Programmieren.

Viel Vergnügen.

Oliver

Autor: Hoast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oliver schrieb:
> Nein. Das ist weder richtig noch wie bei den anderen.

Sehr aufschlussrecih warum ist es nicht richtig so? Wenn ich bei
DDRD &= ~(_BV(PD0) | _BV(PD1) | _BV(PD2) | _BV(PD3) | _BV(PD4) | _BV(PD5) | _BV(PD6));
  PORTD = _BV(PD0) | _BV(PD1) | _BV(PD2) | _BV(PD3) | _BV(PD4) | _BV(PD5) | _BV(PD6);
 was hinzufüge gehts ja auch!
Wieso geht das mit dem anderen dann nicht.
Wenn ich mal genug Zeit habe werde ich liebend gerne das Programmieren 
lernen leider ist das im Moment nicht so. Ich will ja einfach nur noch 
ein paar Taster dran haben erstmal nichts weiter. Klar wäre es schön, 
wenn ich programmieren könnte und das alles verstehe und endlich mal 
wirklich mitreden kann aber das geht halt im mom nicht - leider

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.