c - Problems with rs 232 DB9 pin toggling code -
नीचे दिए गए कोड में
int ctr, fd, j1; एफडी = ओपन ("/ dev / ttyS0", O_RDWR | O_NOCTTY); J1 = ioctl (एफडी, टीआईओसीएमजीईटी, & amp; सीटीआर); अगर (सीटीआर एंड टीआईओसीएमडीटीआर) {सीटीआर & amp; = ~ टीआईओसीएमडीटीआर; J2 = ioctl (FD, TIOCMSET, & amp; सीटीआर); } Else {ctr = ctr | TIOCM_DTR; जे 4 = ioctl (FD, TIOCMSET, & amp; सीटीआर); } 1) क्या कोई यह बता सकता है कि सीटीआर = सीटीआर | TIOCM_DTR करते हैं? क्या यह सिर्फ डीटीआर पिन की स्थिति को बदलता है? क्योंकि सीटीआर केवल एक इंजियर है जबकि टीआईओसीएमडीटीआर थोड़ा सा है, ठीक है?
2) मैंने टॉगल करने के लिए डीटीआर पिन कॉन्फ़िगर किया है, लेकिन आरटीएस पिन की जांच करते समय भी टॉगल किया जाता है।
3) अब अगर मैं टॉगलिंग के बीच का समय निर्धारित करता हूं, तो कोड काम करता है यदि समय सीमा 1 एमएस से 50 एमएस के बीच, 50 एमएस से ऊपर है, जब डीएसओ में देखा जाने वाला समय 50 एमएस से 100 एमएस और कुछ समय के बीच बदल रहा है यहां तक कि माइक्रो सेकंड रेंज में भी। (टॉगलिंग के बीच इस बार की अवधि एक अलग टाइमर प्रोग्राम के माध्यम से उत्पन्न होती है, जैसे कि टाइमर ओवरफ्लो, टॉगलिंग प्रोग्राम कहलाता है)
1ï¼ ??" ctr = ctr | TIOCM_DTR "सीटीआर के 1 के बीच के अंतर से संबंधित बिट सेट करेगा।
Comments
Post a Comment