Új hozzászólás Aktív témák
-
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.
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- sziku69: Fűzzük össze a szavakat :)
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Sorozatok
- Google Pixel topik
- Parfüm topik
- Allegro vélemények - tapasztalatok
- Újjászületés: szombattól új szerverkörnyezetben a PROHARDVER! lapcsalád
- Milyen SSD-t vegyek?
- Luck Dragon: Asszociációs játék. :)
- Xbox Series X|S
- További aktív témák...
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest