- Eldurvul a Nova Lake-kel az Intel-féle hibrid dizájn
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- AMD Navi Radeon™ RX 6xxx sorozat
- Milyen TV-t vegyek?
- TCL LCD és LED TV-k
- NVIDIA GeForce RTX 5060 Ti (GB206)
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Szünetmentes tápegységek (UPS)
- Bambu Lab 3D nyomtatók
- Intel Core Ultra 3, Core Ultra 5, Ultra 7, Ultra 9 "Arrow Lake" LGA 1851
Új hozzászólás Aktív témák
-
G.A.
aktív tag
Megvan az erdő!
A for() ciklusban a feltétel a hibás:
for(uint32 i = 0, txbptr = 3; i < sizeToTransfer; i++, txbptr += 4)
{
local_rx_buffer[i] = temp_rx_buffer[txbptr];
}Javítva:
for(uint32 i = 0, txbptr = 3; txbptr < sizeToTransfer; i++, txbptr += 4)
{
local_rx_buffer[i] = temp_rx_buffer[txbptr];
}Az i helyett a txbptr-t (tx buffer pointer) kellett tesztelni.
-
G.A.
aktív tag
Amint leraktam a fejem a párnára, jött is az eureka pillanat... legalábbis azt hittem. Csak egy hibát találtam.
Javítás:
int32 AVR_WRD_Bytes(uint8* local_rx_buffer, uint8* local_tx_buffer, uint32 sizeToTransfer, ...)
{
uint8 temp_rx_buffer[spi_buffer_size];
int32 status = MPSSE_SPI_WRD([B]temp_rx_buffer[/B], local_tx_buffer, sizeToTransfer,...);
if (status == OK)
{
for(uint32 i = 0, txbptr = 3; i < sizeToTransfer; i++, txbptr += 4)
{
local_rx_buffer[i] = [B]temp_rx_buffer[/B][txbptr];
}
}
return(status);
}A gond az előzővel az volt, hogy a local_tx_buffer mérete mindig 4-nek a többszöröse és az MPSSE_SPI_WRD() funkció így mindig 4*n byteot küld vissza. Ha viszont én az AVR_WRD_Bytes(uint8* local_rx_buffer,..) -be eleve csak 1 byteos változót adok meg, mint pl itt:
#define AVR_Get_Lock_Byte() AVR_WRD_Bytes([B]&AVR_Lock_Byte[/B], Read_Lock_Byte, 4)
akkor a local_rx_buffer (példéban: AVR_Lock_Byte) túlcsordul és más változókat is módosíthat,a miket nem kéne. Ezt javítja a temp_rx_buffer.
Sajnos a probléma még így is fenn áll.
-
G.A.
aktív tag
Üdv!
Visual Studio 2015 Update 3-ban egy parancssoros programot irok C/C++ -ban.
Egy FTDI chip(FT2232H) (gyári DLL / header fileokat használok) és egy AVR(ATMega1284P) közötti SPI-n alapuló kommunikációt használok.
Ezzel nincs is igazából gond, a program ezen része azt teszi amit szeretnék. Szerintem.Röviden:
Valamitől módosul némely globális változom, anélkül, hogy használnám.A probléma:
Vannak globális változóim(részlet):uint8 AVR_Signature_Bytes[3] = { 0x00, 0x00, 0x00 };
uint8 AVR_Fuse_Bytes[3] = { 0x00, 0x00, 0x00 };
uint8 AVR_Lock_Byte, AVR_Calibration_Byte, AVR_Prog_Enable_Byte, AVR_Poll_Ready_Byte;
amiket egy funkcióval módosítok/változtatom meg:int32 AVR_WRD_Bytes(uint8* local_rx_buffer, uint8* local_tx_buffer, uint32 sizeToTransfer, ...)
{
int32 status = MPSSE_SPI_WRD(local_rx_buffer, local_tx_buffer, sizeToTransfer,...);
if (status == OK)
{
for(uint32 i = 0, txbptr = 3; i < sizeToTransfer; i++, txbptr += 4)
{
local_rx_buffer[i] = local_rx_buffer[txbptr];
}
}
return(status);
}
Az egyes változó módosításához definícióba raktam a funkciót: (elnézést ha ostobán fogalmaztam meg)#define AVR_Get_Fuse_Bytes() AVR_WRD_Bytes(AVR_Fuse_Bytes, Fuse_Bytes_RD, 12, )
#define AVR_Get_Signature_Bytes() AVR_WRD_Bytes(AVR_Signature_Bytes, Signature_Bytes_RD, 12)
#define AVR_Get_Lock_Byte() AVR_WRD_Bytes(&AVR_Lock_Byte, Read_Lock_Byte, 4)
#define AVR_Get_Calibration_Byte() AVR_WRD_Bytes(&AVR_Calibration_Byte, Read_Calibration_Byte, 4)
Ha lefuttatom a AVR_Get_Fuse_Bytes() funkciót és megjelenítettem (printf) a kapott eredményeket, akkor a várt eredmények jönnek. Mivel ezt ugye globális változóba mentettem, későbbi felhasználás céljából, gondoltam baj nem lehet.Viszont, ha a AVR_Get_Fuse_Bytes() után lefuttatom bármely másik funkciót pl. AVR_Get_Signature_Bytes()-ot és csak utána jeleníteném meg a AVR_Get_Fuse_Bytes() által kapott eredményeket, akkor azok már nem lesznek jók.
Milyen hibakeresési módszert javasoltok? Merre induljak?
(Lehet már nem látom a fától az erdőt... gyakori)GA
-
G.A.
aktív tag
Üdv!
A következő problémám akadt a Visual Studio 2015-ben C++ alatt.
UDP Socketeket (küldés/fogadás) szeretnék létrehozni, amik külön szálon futnának.
A gondom ott kezdődik, hogy ha a include-olom a "thread" könyvtárat, de még nem használom a funkcióit, akkor is hibák keletkeznek a működő socket funkciókkal:
Thread könyvtárral együtt:
bind(socketC, (SOCKADDR*)&myAddress, sizeof(myAddress));
nincs complie error, bind nem működik (nem jön létre)iResult = bind(socketC, (SOCKADDR*)&myAddress, sizeof(myAddress));
error: no suitable conversion conversion from ... existsThread könyvtár nélkül mindkét megoldásnál nincs error és működik is a bind().
Mi lehet itt a baj?
-
G.A.
aktív tag
válasz
mgoogyi #3830 üzenetére
(Az első gondolatom vmi rejtett karakter a kódban, amitől valamiért meghülyül a fordídtó.)
Köszönöm szépen! Igazad van!
A kód pdf-ből történt másolása során az "enter" kód nem lett úgymond konstans. (Néhol \n, máshol \r\n)
Bezártam a VS-t, majd újranyitottam és egyből jelezte is a hibát és ki is javította.Köszönöm szépen még egyszer a segítséget!
-
G.A.
aktív tag
Üdv!
A Visual Studio 2015-el (c++-ban irt kód) akadt egy kis gondom...
A kódot egy chip (FT2232H) "Application Note"-jából másoltam, ill. módosítom saját feladatomhoz.
A képen található a hiba amivel nem tudok mit kezdeni.Fordításkor azt a hibát kapom, hogy: 'byOutputBuffer': undeclared identifier
A 340, ill. a 342-es sorban is...
1. - az adott változó nem s abban a sorokban található
2. - a funkció elején ott virít a változó (létezik) (lentebbi két képen látható)Érdekesség:
Egy másik változóval is volt(van) ilyen problémám. Annak a "megoldása" az volt, hogy kikommenteltem //-el a változót, majd 2 sorral lentebb beillesztettem és így már megy is... (de hogy, mitől...???)
Képekben:
Hibás kód:
Működő kód:Ez valami VS'15 bug lenne?
Új hozzászólás Aktív témák
Hirdetés
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Eldurvul a Nova Lake-kel az Intel-féle hibrid dizájn
- Építő/felújító topik
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Időjárás topik
- AMD Navi Radeon™ RX 6xxx sorozat
- Spórolós topik
- Milyen TV-t vegyek?
- Kerékpárosok, bringások ide!
- TCL LCD és LED TV-k
- Sony Xperia 1 V - kizárólag igényeseknek
- További aktív témák...
- AKCIÓ!!! GAMER PC: Új i5-14400F +RTX 4060/5060/4070/5070 +16-64GB DDR4! GAR/SZÁMLA! 50 FÉLE HÁZ!
- Elite Dragonfly G3 13.5" FHD+ IPS érintő i5-1235U 16GB 512GB NVMe ujjlolv gar
- Újszerű 17.3" FHD (1920x1080) IPS 40pin 144Hz matt LED kijelző. AUO B173HAN04.9
- Lenovo kezdő laptop (i3 6th, 500 GB, 4 GB) reklámáron! AkciÓÓ!
- Monitor audio RSW-12 sub eladó
- ÁRGARANCIA! Épített KomPhone Ryzen 5 7600X 32/64GB RTX 5070 12GB GAMER PC termékbeszámítással
- ÁRGARANCIA!Épített KomPhone i7 14700KF 32/64GB RAM RX 9070 16GB GAMER PC termékbeszámítással
- Bomba ár! Dell Latitude E6420 - i5-2GEN I 4GB I 250GB I HDMI I 14" HD I W10 I Gari!
- BESZÁMÍTÁS! MSI B450M R5 5600 32GB DDR4 512GB SSD RTX 3060 12GB THERMALTAKE Core V21 Enermax 650W
- BESZÁMÍTÁS! ASUS H87I-PLUS H87 chipset alaplap garanciával hibátlan működéssel
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest