Wpis z mikrobloga

Mam 2 pytania, bascom ale chyba w c jest podobnie, jak odebrać 2 bajty do jednej zmiennej word po I2C?
I czy multipleksery analogowe jak CD4052/1 są "przezroczyste dla dtałych napięć? I powyzej jakich zaczynają wpływać na amplitudę? Ktoś mi napisał że kanał działa na pewne częstotliwości jak filtr RC, ale od jakich częstotliwości zacznie wpływać na Napięcie podane?
I czy przepuszcza też bez zmiany napięcia jak od 0.05V?? Chodzi mi o to czy mogę mierzyć napięcia z ewentualnych przetwornic poprzez multiplekser.
#elektronika #avr #bascom
Fox_Murder - Mam 2 pytania, bascom ale chyba w c jest podobnie, jak odebrać 2 bajty d...

źródło: comment_mpvzMT1R9x1GD78nybM2p5cMyDiLvM6c.jpg

Pobierz
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mam 2 pytania, bascom ale chyba w c jest podobnie, jak odebrać 2 bajty do jednej zmiennej word po I2C?


@Fox_Murder: Powiedzmy ze masz funkcję czytającą 1 bajt:

I2CreadByte()

i chcesz odebrać
  • Odpowiedz
@Fox_Murder: jeden bajt - to 8 bitów
dwa bajty - 16bitów
zmienna data ma u mnie typ uint16t czyli dwu-bajtowy int, wartość początkowa 0 czyli 0x0000

powiedzmy że chcesz odebrać po i2C takie dwa bajty: 0xAA
  • Odpowiedz
@Fox_Murder:

nie rozumiem co ten kod robi

data = I2C_readByte(1);
Zakładając że właśnie odebrałeś same jedynki(255), a data to zmienna o rozmiarze dwóch bajtów to masz teraz 0b000000001111111
W drugiej linijce kodu @QBA__ przesuwasz każdą jedynkę o 8 miejsc w lewo
  • Odpowiedz
@PoprostuWidelec: wiem co to bajt i przesunięcia ale jeśli użyję do odebrania tego samego worda w którym mam już jedynki po lewej, to mi je nadpisze, nadpisze całego worda...
i pójdą się grzmocić.
próbowałem już tak.
Próbowałem też odbierać 1 bajt do worda, po czm 2 do drugiej zmiennej byte, a potem dodawać. nawet nie wiem czy to działa bo adc jest jakiś posrany.
@QBA__:
Może wcale nie ma
  • Odpowiedz
@Fox_Murder: BASCOMa nie znam totalnie

wiem co to bajt i przesunięcia ale jeśli użyję do odebrania tego samego worda w którym mam już jedynki po lewej, to mi je nadpisze, nadpisze całego worda...

i pójdą się grzmocić.

próbowałem już
  • Odpowiedz
@PoprostuWidelec: @QBA__: o kurde doszłem xD
Otóż coś było nie tak z tym odbiorem tych rejestrów bo miał słać 2 bajty z czego 4 MSB puste 0 bo adc 12bit.
Teraz w koncu działa. Trzeba NAJPIERW przesunąć pierwszy bajt w lewo, potem dodawać do siebie!
Jak dodawałem bajty bez przesunięcia pierwszego odbioru w prawo to kupa wychodziła.
  • Odpowiedz
@QBA__:
@PoprostuWidelec:
tak przeoczyłem ze suma logiczna ale wiedziałem że chodzi o to by przesunąć.
Względem atmega i xmega stabilne wyniki, po konwersji do woltów druga cyfra po przecinku nawet nie drgnie, jeszcze liniowości nie testowałem, to później. W skali 4096 lata zaledwie o ok 4-6. Bardzo mnie to cieszy. Wczoraj w nocy już miałem zamawiać następny inny adc na spi bo myślałem że ten jest je%^&ty. Ale
  • Odpowiedz