Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > Hallo Thomas, > > > > ich möchte an einem digitalen Port P1H.0 auf dem Applikationsboard den Zustand abfragen, ob er sich im Zustand high oder low befindet, d.h. ob ein externes, elektrisches Signal am Port anliegt oder nicht > > 1. Es heißt Application Board. > > > (Port wird in diesem Fall als Eingangsport verwendet). > > Wenn er den Zustand high hat, liegt ein externes, elektrisches Signal an und es soll mittels can.send eine Nachricht über den CAN BUS gesendet werden können. > > > > Meine Fragen lauten: > > > > 1. Wie muß der digitale Port P1H.0 gesetzt werden, damit er den Zustand high annehmen kann, wenn > > ein externes, elektrisches Signal an diesen Port von außen angelegt wird (z.B. ein analoges Rechtecksignal) ? > > > > Wenn kein Signal anliegt, soll er den Zustand low haben bzw. keine Nachricht über CAN BUS senden. > > Setzen mußt Du garnichts. Die Ports sind nach einem Reset immer Eingänge. > Die Ports werden einfach mit ports.get() abgefragt (siehe Handbuch). > > > > > 2. Kann mir jemand ein Beispiel zu diesem Port P1H.0 programmieren, wenn ein externes (elektrisches) > > Signal an diesem Port von außen anliegt bzw. wenn kein Signal anliegt und keine CAN BUS Nachricht > > gesendet werden soll ? > > if ports.get(port) > { > // nachricht senden > } > > > Wenn ein kurzes, elektrisches Signal an diesem Port von außen angelegt wird, soll die CAN BUS Nachricht > > nur DATA[0] enthalten. Wenn zwei kurze, elektrische Signale hintereinander an diesem Port von außen > > angelegt werden, soll die gesendete CAN BUS Nachricht DATA[0],DATA[1] enthalten usw. > > > > Hier mußt Du wohl mit den countern arbeiten. > Dazu mußt Du aber Dein Signal z.B. mit einem Transistor zuerst invertieren, da die > Counterports nur bei einer high-low-Flanke zählen. > > int x; > loop > { x=ports.getcount(0);//0=P1H.0 > if x break; > yield;//nur bei Multithreading > } > sleep 100; //100ms warten für weitere Impulse > x=x+ports.getcount(0) > if x==1 > { > // sende Nachricht (1 Impuls) > } > else > if x ==2 > { > // sende Nachricht (2 Impulse) > } > else > if x ==3 > { > // sende Nachricht (3 Impulse) > } > usw. > > > MfG André H.