मैं एक Arduino मेगा 2560 परियोजना पर काम कर रहा हूँ। विंडोज 7 पीसी में मैं Arduino1.0 आईडीई का उपयोग कर रहा हूं। मुझे 115200 की बॉड दर के साथ एक सीरियल ब्लूटूथ संचार स्थापित करने की आवश्यकता है। आरएक्स पर डेटा उपलब्ध होने पर मुझे एक बाधा प्राप्त करने की आवश्यकता है। कोड के प्रत्येक टुकड़े मैंने "मतदान" का उपयोग किया है, जो सीरियल की स्थिति रख रहा है। Arduino के लूप के अंदर उपलब्ध है। एक इंटरप्ट और इसकी सेवा रूटीन के लिए मैं Arduino के लूप पर इस दृष्टिकोण को कैसे बदल सकता हूं? ऐसा लगता है कि संलग्न इंटरप्ट() इस उद्देश्य के लिए प्रदान नहीं करता है। मैं नींद मोड से Arduino जागने के लिए एक इंटरप्ट पर निर्भर करता हूं।Arduino सीरियल इंटरप्ट्स
मैं इस सरल कोड है कि पिन 13.
#include <avr/interrupt.h>
#include <avr/io.h>
void setup()
{
pinMode(13, OUTPUT); //Set pin 13 as output
UBRR0H = 0;//(BAUD_PRESCALE >> 8); // Load upper 8-bits of the baud rate value into the high byte of the UBRR register
UBRR0L = 8; // Load lower 8-bits of the baud rate value into the low byte of the UBRR register
UCSR0C |= (1 << UCSZ00) | (1 << UCSZ10); // Use 8-bit character sizes
UCSR0B |= (1 << RXEN0) | (1 << TXEN0) | (1 << RXCIE0); // Turn on the transmission, reception, and Receive interrupt
}
void loop()
{
//Do nothing
}
ISR(USART0_RXC_vect)
{
digitalWrite(13, HIGH); // Turn the LED on
}
समस्या यह है कि सबरूटीन सेवा की कभी नहीं किया गया है से जुड़ा एक एलईडी चालू करने के लिए माना जाता है विकसित किया है।
ब्लूटूथ के साथ आपके प्रश्न को क्या करना है? ऐसा लगता है कि आप केवल पूछ रहे हैं कि नियमित यूएआरटी को इंटरप्ट के साथ कैसे उपयोग करें? – TJD