XC8 I2C zmena registru
Miroslav Draxal
evik na volny.cz
Sobota Listopad 27 11:16:29 CET 2021
Veškeré registry spojené s i2c si hoďte do Watch okna a po inicializaci si zkontrolujte jejich stavy. Také do toho koukněte v průběhu běhu programu jestli se někde nějaký registr nezměnil. Pokud jo, dá se k tomu dobře využít okno BreakPoints/New BreakPoint (ikona vlevo nahoře v okně BreakPoints) tam si zadat přerušit běh programu při změně zápisu do registru a spusti program. Ono se to zastaví tam, kde se do toho registru zapisuje. Tím najdete, kde se zapisuje ta nechtěná hodnota do reg.
Míra
From: Hw-list [mailto:hw-list-bounces na list.hw.cz] On Behalf Of Libor Konečný
Sent: Friday, November 26, 2021 11:37 PM
To: HW-news
Subject: Re: XC8 I2C zmena registru
Diky, watch okno jsme neznal, jeste jsem v MPLABu zacatecnik.
Dneska jsem vytvoril cisty projket jen s i2c a funguje to, ale v puvodnim ne, nekde bude nejaka definice, ktera to blokuje.
Tedy funguje to tak, ze uz dokazu zmenit hodnotu tech registru, resim SLAVE, tedy neco jako simulace i2c eepromky, ale kdyz sleduji SPI1STAT tak mi to ten i2c start nedetekuje, pritom na sbernici je pritomna cela sekvence.
Mam i2c slave napsany softwarove na zaklade zmeny stavu pinu, ale kvuli rychlosti jsme to chtel predelat na interni i2c v PIC, piny mam spravne, ale ze by se detekoval alespon ten i2c start toho se mi nepodarilo dosahnout.
LK
Dne 26.11.2021 v 20:31 Miroslav Draxal napsal(a):
Dobrý den,
Hoďte si co potřebujete sledovat do Watches a odkrokujte si to. U mě ten kód chodí podle předpokladu.
Míra.
-----Original Message-----
From: Hw-list [mailto:hw-list-bounces na list.hw.cz] On Behalf Of Libor Konečný
Sent: Friday, November 26, 2021 12:50 AM
To: HW-news
Subject: XC8 I2C zmena registru
Zdravim osazenstvo
Dokaze me nekdo nakopnout jak zmenim hodnotu registru pro i2c ?
MCU PIC16F19196
mam kod (vysek z projektu)
SSP1STAT = 0x80;
SSP1CON1 |= 0x06;
SSP1CON2 = 0x01;
SSP1CON1bits.SSPEN = 0;
if(!SSP1CON1bits.SSPEN)
{
SSP1STAT = 0x80;
SSP1CON1 |= 0x06;
SSP1CON2 = 0x01;
SSP1CON1bits.SSPEN = 1;
}
INTCONbits.PEIE =
1; // Enable
peripheral interrupts
INTCONbits.GIE = 1;
a vypisu si debug
debug_print_hex_u8(INTCON);
debug_print_hex_u8(SSP1STAT);
debug_print_hex_u8(SSP1CON1);
debug_print_hex_u8(SSP1CON2);
debug_print_hex_u8(SSP1CON3);
INCON 0xC0
vse ostatni 0x00 nejak nechapu....
kod vygeneroval MCC
a pdf jsem si procital taky detailne.
1000x diky za pripadne nakopnuti spravym smerem.
Libor
_______________________________________________
HW-list mailing list - sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list
_______________________________________________
HW-list mailing list - sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20211127/70e5ad81/attachment.html>
Další informace o konferenci Hw-list