RoboterCC - Robotic Code Compiler
Forum Robot Kits NIBO 2 Ein- oder Ausgänge beim NDS3

Welcome

Nachrichten

Sie sind nicht eingeloggt.

Werbung

Banner

Letzte Themen

  • Keine Beiträge vorhanden

Site-Statistic

  • 7433 private projects
  • 378 public projects
  • 16180353 lines compiled
  • 58212 builds
NIBO @ facebook YouTube Twitter
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:

THEMA: Ein- oder Ausgänge beim NDS3

Aw: Ein- oder Ausgänge beim NDS3 11 Jahre 5 Monate her #1759

  • Egon
  • Egons Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 316
Hallo Georg

Das ist mir nicht klar - wie sieht das c-Programm aus:

- wenn ich mit dem Taster S3 vom ATMega128 auf dem ATtiny den Port PA0 als Ausgang setzen will (z.B weil ich da eine LED anmachen will)
- wenn ich den Port B2 auf dem ATtiny als Eingang nehmen will (z.B. ein Taster angeschlossen) und ich will mit Betätigen des Tasters (B2 auf dem ATtiny) die LED Nr2 auf dem NIBO anmachen

Wie muß ich da die von workwind zur Verfügung gestellten Funktionen "parametrieren"?



Egon
lokalisieren, eliminieren, Vollzug melden
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: Ein- oder Ausgänge beim NDS3 11 Jahre 5 Monate her #1760

  • Georg
  • Georgs Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 290
Hallo Egon,

Hallo Achim,

Beispiel für PORTB0 und PORTB2 als Eingang:

char text[22] = " ";// Text-Ausgabe-Buffer
nds3_ddr = 0;
nds3_ddr_commit();
/*
Bit......7.....6.....5.....4......3......2......1......0
Port...B3...B2...B1...B0...A3...A2...A1...A0
Wert..........64..........16.................................. = 80
*/
nds3_port = 80; //B2 und B0
nds3_port_commit();
while(1) {
nds3_pin_update();
uint8_t pin = nds3_pin;
gfx_move(0,51);
sprintf(text,"PIN %+04d",pin);
gfx_print_text(text);
}


Anzeige: Die an B0 und B2 angeschlossenen Taster sind mit GND verbunden

PIN +080 Taster B0 offen Taster B2 offen
PIN +064 Taster B0 geschlossen Taster B2 offen
PIN +016 Taster B0 offen Taster B2 geschlossen
PIN +000 Taster B0 geschlossen Taster B2 geschlossen

Georg
Letzte Änderung: 11 Jahre 5 Monate her von Georg.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: Ein- oder Ausgänge beim NDS3 11 Jahre 5 Monate her #1761

  • achim S.
  • achim S.s Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 441
Hallo Georg
Du hast in einem anderem Text da von gesprochen, NDS3Hex neu zu erzeugen. Das wird doch vorgegeben durch den Hersteller. Wie können wir das machen bzw. wird es überhaupt noch gebraucht?
Mit deiner PIN Schreibweise komme ich nicht ganz klar, da sich noch einige andere Zahlen ergeben können.
Gibt es einen Möglichkeit auch eine LED zu schalten?
Letzte Frage: Warum steht das nirgends?
achim
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: Ein- oder Ausgänge beim NDS3 11 Jahre 5 Monate her #1762

  • Egon
  • Egons Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 316
Hallo Georg

Super - danke! Damit ist's mir klar... :thumbsup:

Schade, daß diese Info nicht mit in der WIKI steht (oder in der Lib) - sollte mit aufgenommen werden...

Werde mir doch über kurz oder lang mal so'n NDS3 zulegen, damit ich da ein bischen "üben" kann.. ;)

mfg

Egon
lokalisieren, eliminieren, Vollzug melden
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: Ein- oder Ausgänge beim NDS3 11 Jahre 5 Monate her #1763

  • Egon
  • Egons Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 316
Hi Georg

nur kurz (damit ich's auch kapiert habe):

Frage: wenn ich PortB2 als Ausgang nehmen will:

nds3_ddr = 64; /* DDRB B2 als Ausgang */
nds3_ddr_commit();
nds3_port = 64; /* Port B2 = "1" */
nds3_port_commit();


stimmt das soweit oder fehlt noch was?

Egon
lokalisieren, eliminieren, Vollzug melden
Letzte Änderung: 11 Jahre 5 Monate her von Egon.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: Ein- oder Ausgänge beim NDS3 11 Jahre 5 Monate her #1764

  • Georg
  • Georgs Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 290
Hallo Egon,

mir ist inzwischen aufgefallen, dass in i2c.c ebenfalls B0 und B2 benutzt wird. Ich habe diese Zeilen kommentiert und danach mehrere NDS3-Programme mit Erfolg getestet. Vermutlich wurde mit diesen Aufrufen Status-LED's gesteuert,die an B0 und B2 angeschlossen waren.

Folgende Zeilen sind in der i2c.c zu kommentieren:

activate_output_bit(IO_B0)
activate_output_bit(IO_B2)
set_output_bit(IO_B0)
set_output_bit(IO_B2)
clear_output_bit(IO_B0)
clear_output_Bit(IO_B2)


Nun zu Deiner Frage! Du hast es richtig kapiert!
Folgende Code schaltet DDRB B2 als Ausgang im 2 Sekunden-Takt High und Low:


nds3_ddr = 64;
nds3_ddr_commit();
nds3_port = 64;
nds3_port_commit();
delay(2000);
nds3_ddr = 64;
nds3_ddr_commit();
nds3_port = 0;
nds3_port_commit();
delay(2000);


Georg
Letzte Änderung: 11 Jahre 5 Monate her von Georg.
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Ladezeit der Seite: 0.045 Sekunden

Werbung