-
Notifications
You must be signed in to change notification settings - Fork 63
Add the possibility to not use interrupt for events but to poll for them #89
Comments
Hello~ Although I read most of Thomas' code, including DW1000Raing.cpp and DW1000.cpp. I don't really understand when will the interrupt happens. When I source back to the attachInterupt() function, I know it happens when the IRQ pin changes but I don't know when the IRQ pin change. I guess it will be changed when it sent/receive a message, but I don't see any codes about changing that pin, is it depends on the inside circuit or I not found it? Thanks for your reply!!! |
Yeah it is an inside mechanism of the dw1000 itself, there is a register
inside the chip that controls when to send an interrupt relative to the
selected events.(we add a struct and a method to select them)
…On Wed, 10 Oct 2018, 18:32 Elon-Wang, ***@***.***> wrote:
Hello~
I come from the project of Thomas' project and work on this modules for a
while, and there is a problem confused me for a long time.
Although I read most of Thomas' code, including DW1000Raing.cpp and
DW1000.cpp. I don't really understand when will the interrupt happens.
When I source back to the attachInterupt() function, I know it happens
when the IRQ pin changes but I don't know when the IRQ pin change. I guess
it will be changed when it sent/receive a message, but I don't see any
codes about changing that pin, is it depends on the inside circuit or I not
found it?
Thanks for your reply!!!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#89 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AWi_Nrr0fA7MA1igye45TxwhtCkmmt3kks5ujiEWgaJpZM4W8F7Z>
.
|
Thank you for your reply, that really helps me a lot!! I finally find someone who can answer my question.😊😊 After I set the antenna delay, the one to one ranging become precise however when I use three anchors and one tag to do the ranging, there are only one pair of ranging turn out to be reliable, while the other two are quite wrong. The anchor with right raging data is random. For example, if I have three anchors A B C, and turn them on, only A get the right ranging data. However, If you turn anchor A off, one of the rest anchor will work well, the other is still reading the wrong distance. The same phenomenon happens when you turn the second anchor off. Then I turn them down and using the anchor which is works well to print out the timestamp of Poll/PollACK/Ranging , and calculate the reply1 round1, reply2 , round2. It's strange to see reply1 is bigger than round1 sometime, which is ridiculous. However, those ridiculous timestamps can calculate out the right distance using the formula (Tround1 * Tround2 - Treply1 * Treply2)/ (Tround1 + Tround2 + Treply1 +Treply2) . Have you ever encounter with the same problem? Is this out of the non-calibration of crystal oscillator,if yes,how to do it? If you know the reason, please tell me how to solve it. I'm very grateful!!! |
The crystal oscillator is already calibrated if you are using a DWM1000.
How are you doing the triple anchor range? We didn't implement it on the
examples, we plan to do it soon.
Feel free to open an issue, so we can continue to discuss this there!
…On Wed, 10 Oct 2018, 19:30 Elon, ***@***.***> wrote:
Yeah it is an inside mechanism of the dw1000 itself, there is a register
inside the chip that controls when to send an interrupt relative to the
selected elements.(we add a struct and a method to select them)
… <#m_734608033200878039_>
On Wed, 10 Oct 2018, 18:32 Elon-Wang, ***@***.***> wrote: Hello~ I come
from the project of Thomas' project and work on this modules for a while,
and there is a problem confused me for a long time. Although I read most of
Thomas' code, including DW1000Raing.cpp and DW1000.cpp. I don't really
understand when will the interrupt happens. When I source back to the
attachInterupt() function, I know it happens when the IRQ pin changes but I
don't know when the IRQ pin change. I guess it will be changed when it
sent/receive a message, but I don't see any codes about changing that pin,
is it depends on the inside circuit or I not found it? Thanks for your
reply!!! — You are receiving this because you authored the thread. Reply to
this email directly, view it on GitHub <#89 (comment)
<#89 (comment)>>,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AWi_Nrr0fA7MA1igye45TxwhtCkmmt3kks5ujiEWgaJpZM4W8F7Z
.
Thank you for your reply, that really helps me a lot!! I finally find
someone who can answer my question.😊😊
After I set the antenna delay, the one to one ranging become precise
however when I use three anchors and one tag to do the ranging, there are
only one pair of ranging turn out to be reliable, while the other two are
quite wrong. The anchor with right raging data is random. For example, if I
have three anchors A B C, and turn them on, only A get the right ranging
data. However, If you turn anchor A off, one of the rest anchor will work
well, the other is still reading the wrong distance. The same phenomenon
happens when you turn the second anchor off.
Then I turn them down and using the anchor which is works well to print
out the timestamp of Poll/PollACK/Ranging , and calculate the reply1
round1, reply2 , round2. It's strange to see reply1 is bigger than round1
sometime, which is ridiculous. However, those ridiculous timestamps can
calculate out the right distance using the formula (Tround1 * Tround2 -
Treply1 * Treply2)/ (Tround1 + Tround2 + Treply1 +Treply2) .
Have you ever encounter with the same problem? Is this out of the
non-calibration of crystal oscillator,if yes,how to do it? If you know the
reason, please tell me how to solve it.
I'm very grateful!!!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#89 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AWi_Nho_5vrSp4U950It3S1bzMBPB7JYks5uji6ogaJpZM4W8F7Z>
.
|
So, you haven't try multiple anchors locate yet? |
Yeah, we rewrote a lot of the thotro's driver, this is still a work in progress, we wanted to get rid of DW1000Ranging as a loop and instead to make it a library compliant with ISO/IEC-24730/62 to leave the user with more control over the action flow. |
I think that we could close this issue @an4cr0n |
done |
This will decrease performance but make the program more stable because there will never be interrupt when they (the interrupts) are locked.
The text was updated successfully, but these errors were encountered: