Anfänger Frage - Programmieren C/C++

Gast #1753328
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?
Gast #1753335
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.
Gast #1753370
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
Gast #1753380
Lesenswert?
• ▲
▼
Oliver schrieb:
> Nein. Das ist weder richtig noch wie bei den anderen.

Sehr aufschlussrecih warum ist es nicht richtig so? Wenn ich bei
1
DDRD &= ~(_BV(PD0) | _BV(PD1) | _BV(PD2) | _BV(PD3) | _BV(PD4) | _BV(PD5) | _BV(PD6));
2
  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

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.

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.