- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi I'm trying to interface a HX711 weighing scale sensor with PSoC 4 BLE. The HX711is a 24-bit ADC for weighing scales that sends data one bit at a time in 24 clock cycles (datasheet attached).
I used the following code in Arduino to obtain data.
long Hx711::getValue()
{
byte data[3];
while (digitalRead(_pin_dout))
;
for (byte j = 0; j < 3; j++)
{
for (byte i = 0; i < 8; i++)
{
digitalWrite(_pin_slk, HIGH); //every HIGH pullup shifts one bit of data; hence _pin_slk needs to be pulled up 24 times
bitWrite(data[2 - j], 7 - i, digitalRead(_pin_dout)); //to read one bit at a time and store in data[]
digitalWrite(_pin_slk, LOW);
}
}
digitalWrite(_pin_slk, HIGH); //to pull the DOUT pin back to high to reach 25 pulses
digitalWrite(_pin_slk, LOW);
return ((long) data[2] << 16) | ((long) data[1] << 😎 | (long) data[0]; //bitshift left operator used for shift the bits to the left
//bitwise OR operator to add the three bytes (24 bits) obtained
}
How do I implement the same in PSoC? Does PSoC support a bitshift operator (<<) like Arduino?
Thanks,
Ganesh
Solved! Go to Solution.
- Labels:
-
BLE
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
This is not a question of the board or processor, it is a question of the programming language used.
PSoC Creator uses C-language while with Arduino you may use C++.
Of course the hardware is quite different: Creator uses "components" whose properties you configure at design time (as pin drive mode etc) and at runtime you control them with the appropriate APIs.
The difference between PSoCs and other embedded is: PSoCs contain real configurable hardware that can be routed chip internally to fit your needs. Just as building up a pcb you connect the required signals. Have a look at the video demos
Bob
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
This is not a question of the board or processor, it is a question of the programming language used.
PSoC Creator uses C-language while with Arduino you may use C++.
Of course the hardware is quite different: Creator uses "components" whose properties you configure at design time (as pin drive mode etc) and at runtime you control them with the appropriate APIs.
The difference between PSoCs and other embedded is: PSoCs contain real configurable hardware that can be routed chip internally to fit your needs. Just as building up a pcb you connect the required signals. Have a look at the video demos
Bob
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
tl;dr: yes
(as Bob said, the shioft operators are not a question of the hardware, but for the programming language. And C supports them).
You can do manual bit-banging as with the Arduino, by using direct pin access (look in the system reference for that). Or you use a SPI master to read the data, which will do most of the work in hardware.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks for the reply. I figured out that it was a case of the programming language only after I posted the question. I was able to write the code on PSoC Creator.
Ganesh
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Can you provide me some details for this project ?
Library HX711?
thank you
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am also working on HX711, Can i Get ur Help???