I want to get data from i2c line but data sending time is unknown it means I dont know when data come in to my card and as far as I know in qt there is no interrupt so how can I detect the data in qt.
in Qt you have slots as an analog of interrupts. But in Qt you won't work directly with i2c line. Look here: https://forum.qt.io/topic/49096/i2c-bus-control-using-qt-qml/2
Related
I need to code for a MSP430FR5969 launch pad that can generate PWM signal upto 100KHz, I want to control it with R-Pi3 over the I2C bus to send the Freq and duty cycle to the MSP430.
I am very new in coding MSP430, any help would be appreciate it.
thans
I find the best approach is to look at the examples provided for this particular LaunchPad. You'll now find these under Resource Explorer.
Run the PWM example and get your head around what it's doing. This should be easy enough using the on-board LED.
Then run the I2C example and get your head round what that's doing. You can connect it straight to the Pi, but a logic analyser will really help with this.
Peripheral setup is the hardest part of MSP430 coding. Once you get this right (or just copy it from an example) the code in between is normally much easier.
I want to measure the time between two signals that are not in phase and i am using arduino Uno. I have converted the 2 sinusoidal signals into square waves and i am feeding them on INT0 and INT1 respectively. To measure the lag between the two signals i want to measure the time between the rising edges or falling edges of the signals using interrupts. On receiving the first rising edge i want to start a timer, say timer 3, upon receiving the second rising edge i want to stop the timer. my problem is i cant find a library that will allow me to start and stop timer the 3 and use the value it so i have chosen to include a few lines of Assembly language in my program for that purpose. Is it possible on the Arduino boards using the arduino IDE?
Yes it's possible. See for example this tutorial. However, I'd strongly recommend if you're doing anything more than a few instructions, you download and install Atmel studio -- which is free -- and use its excellent user interface to do your coding and debugging. I do all my programming for bare microcontrollers, in-system programming, and Arduinos using Atmel Studio.
I want to draw real time graph using data coming from a rotating ultrasonic sensor through arduino. What are the tools or library required for this. I am using official arduino IDE using C language.
The Arduino itself can't really draw a plot, so you'll have to send the data to your computer using Serial communcation. Your computer can then draw a graph. There are two options:
Use an existing program
The easy way.
This official Arduino page has some example code for the program Processing, but I'm sure you can find a bunch of other examples and tutorials online.
Write it yourself
This is the difficult and fun way.
If you already know a programming language, great! Search some tutorials about how to connect your Arduino & how to plot data.
Otherwise, I recommend starting with Python, this is a good place to start.
Java
I have some old code written in Java that connects to the Arduino using the very easy JSSC library:
SerialPort port = new SerialPort("COM9");
port.openPort();
port.setParams(9600, 8, 1, 0);
byte b = port.readBytes(1)[0]; //read a single byte
port.writeByte(b); //write a single byte
Where you'd replace "COM9" with whatever port your Arduino is connected to, as displayed in the bottom right of the Arduino IDE.
Actually plotting the data would require another library, I see JFreeChart being recommend a lot online.
I'm trying to write the control code for a custom joystick, and I cannot find any reference to what needs to be implemented to be recognized by a computer as a joystick.
I can see what things I need to have by referencing various game library APIs for using a joystick.
For example, pygame has the following methods,
init
quit
get_init
get_name
get_id
get_numaxes
get_numbuttons
etc.
My next stop is to read through the kernel for Linux's HID and joystick controlers... But this seems like a really round about way of finding this information.
I haven't worked with it, but it looks like there is some interesting information in Arduino Uno Joystick HID firmware and Arduino Uno Big Joystick HID firmware. There is also UnoJoy - I'd try that first (assuming you have an Arduino Uno or Leonardo).
Here is my issue, it appears that all the communication lines for the PIC 16F913 reside on the same set of pins, this is convenient in that I don't have to sacrifice GPIO pins just to do comms, however the problem I'm having now is if I'm using the SPI on the chip, how can I send information to the RS232?
The reason this issue came up, is that I just bought a CAN bus chip that communicates over SPI, and I would really like to see the data on RS232, so I can see messages. (I really don't know much about CAN yet, so who knows if this even makes sense yet).
Here are the options I see, and maybe someone else has better ideas that I'm just simply missing.
Somehow setup a time scheme that will switch between SPI and RS232 every time I get data,
-- This doesn't seem hard and should work, but supposing I don't want to miss a message, what if a message is written while I'm writing to RS232, is it possible I'll miss it?
2.. I can always use SPI, but then build my own comm bus over 8 of the GPIO lines, to another PIC 16F913, using only the GPIO lines and then since the RS232 lines are free on the second PIC I can simply read the data and spit it out.
-- This one is doable but now we're wasting 2 chips, AND all the GPIO lines,
There has to be a better way. Or is there?
Any help is greatly appreciated.
Update: I would like to clarify, obviously one solution is using a completely different chip (which may in fact be what I end up doing, if I can get the 18F programmed), however, I'm interested in worst case scenario, in which I am limited in resources and only have some 913's, is the way described above the only way to do it with this chip, or is there a better way?
You could do a software implementation of the SPI bus - it's easier to do than the UART because the timing isn't critical and you are in control of it.
Most CAN chips have a few receive buffers so if you're busy doing something with the UART then the messages will be buffered inside the CAN chip. But... you will need to make sure that you can get the messages out of the CAN chip fast/often enough so you don't lose some.
You would probably have to either use an interrupt for the UART Tx process - so that you can be receiving CAN messages while you're sending data on the UART.
If you're only interested in certain messages most CAN chips have filters - this makes it easy to only receive the messages you're interested in, usually dropping the number of packets/second dramatically.
You can use a software implementation of a RS232 port. For example the c compiler from http://mikroe.com comes with such a library. But it shouldn't be too hard to shift bits to an output pin, rs232 is a fairly simple protocol.
I strongly recommend that you change the MCU with PIC16F1933.
It is newer
It is cheaper
With EUART and MSSP moduls.
The MCU arhitecture is impruved.
The PIC16F913 MCU will become obsolete in next few years!