Hallo, Ich arbeite gerage mit dem ARM Bord MBC2300 der Controller ist LPC2378. ich möchte der Pin P2.10(INT0)zustand abfragen, ich will nicht mit dem Interrupt sondern mit Pollen-Afragen . kann mir jemanden der Routine zum abfragen geben, ich habe so gemacht aber funktioniert nicht. while ( 1 ) { if((FIO2PIN &(1<<10))== 1) { Start(4); }else if((FIO2PIN &(1<<10))== 0) Stop(4); } } // Danke
Hallo, if((FIO2PIN &(1<<10))== 1) oder mal so geschrieben: FIO2PIN AND 0b0000001000000000 Wie soll da jemals 1 rauskommen? if((FIO2PIN &(1<<10)) <> 0) oder if((FIO2PIN &(1<<10))== (1<<10)) Tipp von mir, der keine Ahnung von C hat unde den Controller nicht kennt aber logische Verknüpfungen noch mit 0 und 1 gelernt hat. ;-) Gruß aus Berlin Michael
Hallo Cy Guet's, farg doch mal dein Eingang so ab if((FIO2PIN &(1<<10)) != 0) // Abfrage ob Eingang aktuell auf high ist denn (1 << 10) == 0 ist immer false (1 << 10) == 1 ist immer false Warum schreibst du bei deiner else-anweisung noch if? Else reicht völlig aus. MFG Hotte
Und noch kürzer :
if(FIO2PIN &(1<<10)){.....}
else {.....}
Gruß
Danke an alle , ihre hilfe hat mir sehr geholfen.
Hallo, Ich habe ein DC motor über PWM gesteuert, mit der LPC2378 controller, mein Motor läuft immer wieder um ich möchte jedoch nach 20 umdrehung der Motor Stopen das prinzip ist folgendes: 1)- MotorStart(); 2)- 20 undrehung sind vorbei; 3)- MotorStop(); PS: Ich kann schon starten mit dem register : PWM1PCR = (1<<9); /* counter enable, PWM enable */ PWM1TCR = ( 1 << 0 )|(1 << 3); und stoppen PWM1PCR = 0x00; /* counter enable, PWM enable */ PWM1TCR = 0x00; aber ich weiß nich ,wie ich die 20 umdrehung einstellen kann. hat irgend eine eine Idee , dann währe mir sehr hilfsreich Danke
Gast
#1073341
Ich habe auch noch einen:
<c>
// aus Bit-Nummer eine 32-Bit-Zahl machen (Bit-Position)
#ifndef BIT
#define BIT(n) (1UL << (n))
#endif
// PORTxPIN(pin) wird 0 oder 1 je nach Zustand des entsprechenden Pin
#define PORTxPIN(port, bitnum) ( ( (port & bitnum) != 0 ) ? 1 : 0 )
// das nun für jeden Port
#define PORT0PIN(bitnum) (PORTxPIN(FIO0PIN, bitnum))
#define PORT1PIN(bitnum) (PORTxPIN(FIO1PIN, bitnum))
#define PORT2PIN(bitnum) (PORTxPIN(FIO2PIN, bitnum))
#define PORT3PIN(bitnum) (PORTxPIN(FIO3PIN, bitnum))
#define PORT4PIN(bitnum) (PORTxPIN(FIO4PIN, bitnum)=
// hier ein Beispiel für einen Schalter/Taster an Pin 28 von Port 4
#define BUTTON1 (PORT4PIN( BIT(28) ))
// BUTTON1 wird je nach Zustand an Pin 28 von Port 4 -> null oder eins
// Bsp: printf("<Schalter: %d>", BUTTON1); -> Ausgebe: <Schalter: 0>
oder <Schalter: 1>
</c>
Gast
#1073446
Ich habe auch noch einen:
// aus Bit-Nummer eine 32-Bit-Zahl machen (Bit-Position)
#ifndef BIT
#define BIT(n) (1UL << (n))
#endif
// PORTxPIN(pin) wird 0 oder 1 je nach Zustand des entsprechenden Pin
#define PORTxPIN(port, bitnum) ( ( (port & bitnum) != 0 ) ? 1 : 0 )
// das nun für jeden Port
#define PORT0PIN(bitnum) (PORTxPIN(FIO0PIN, bitnum))
#define PORT1PIN(bitnum) (PORTxPIN(FIO1PIN, bitnum))
#define PORT2PIN(bitnum) (PORTxPIN(FIO2PIN, bitnum))
#define PORT3PIN(bitnum) (PORTxPIN(FIO3PIN, bitnum))
#define PORT4PIN(bitnum) (PORTxPIN(FIO4PIN, bitnum)) //<- Korrektur :o(
// hier ein Beispiel für einen Schalter/Taster an Pin 28 von Port 4
#define BUTTON1 (PORT4PIN( BIT(28) ))
// BUTTON1 wird je nach Zustand an Pin 28 von Port 4 -> null oder eins
// Bsp: printf("<Schalter: %d>", BUTTON1); -> Ausgebe: <Schalter: 0>
oder <Schalter: 1>
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.