Problem med AVR USART TX

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43178
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Re: Problem med AVR USART TX

Inlägg av sodjan »

Ingen orsak, enbart vanlig traditionell felsökning... :-)
mAVRick
Inlägg: 319
Blev medlem: 19 mars 2013, 12:43:43
Ort: Östersund

Re: Problem med AVR USART TX

Inlägg av mAVRick »

Nu var ju det här ngn vecka sedan, men det är intressant att notera (map skitforum tråden) hur det finns kommunikationsproblem här (utöver det faktiska UART problemet som var tänkt att avhandlas).
Jag ska försöka att inte dra tråden off topic, men att icecap kallar while loopen 'dum och farlig', är onödigt aggresivt och gör att TS i stället går i försvar.
TS å andra sidan borde bara säga 'tack, jag ska ändra det', för icecap (m.fl.) har i saken rätt. En sån while loop i en ISR är att be om problem som blir svåra att hitta.
Oavsett om det är kod under arbete eller inte, så finns en stor risk att 'skräp' blir kvar när saker till synes fungerar. Att medvetet skriva dålig kod är inte försvarbart.

Kul att höra iaf att TS verkar ha kommit framåt och jag hoppas att while loopen trots allt är borta nu, även om den inte var upphovet till det faktiska problemet. :)
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43178
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Re: Problem med AVR USART TX

Inlägg av sodjan »

> Att medvetet skriva dålig kod är inte försvarbart.

Ja, det finns så många sett att vända och vrida på saker och ting... :-)
Du har inte direkt fel, men jag skulle lika gärna kunna skriva under på att :
- Att medvetet skriva dålig kod är helt OK om man vet vad man gör.
- Att omedvetet skriva dålig kod är så klart olyckligt.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Problem med AVR USART TX

Inlägg av lillahuset »

"Alla" skriver dålig kod ibland. Inget konstigt med det.
Användarvisningsbild
Icecap
Inlägg: 26148
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Problem med AVR USART TX

Inlägg av Icecap »

Det händer ju rimligt ofta att man gör lite konstiga saker för att se om vissa saker fungerar (typ "kom den interrupt?") i debugsyfte.

Min kommentar var riktat mot att OM nu låsningen hade fungerat ville den enbart vara av värde om det fanns ett debug-verktyg med i spelet - och då kunde man ju ändå ställa en break-point som ville göra det samma fast bättre.

En låsning som inte låser och inte ger signal utåt är inte mycket att ha i debug-syfte.

Men en låsning som faktisk låser om en fel finns OCH signalerar om att det är vad som har hänt (t.ex. tänder en LED eller något) kan vara synnerligt bra.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Problem med AVR USART TX

Inlägg av lillahuset »

I interruptrutinerna för DMA i STM32F har jag while loopar eftersom det ibland inte fungerar att cleara interrupten på första försöken.

Kod: Markera allt

/* clear interrupts */
do {
  DMA1->LIFCR = DMAALLIF3;
  lisr = DMA1->LISR;
} while (DMAALLIF3 & lisr);
Det är möjligt att det är fixat i kislet nu men eftersom det fungerar har jag ingen lust att testa utan.
mAVRick
Inlägg: 319
Blev medlem: 19 mars 2013, 12:43:43
Ort: Östersund

Re: Problem med AVR USART TX

Inlägg av mAVRick »

lillahuset skrev:I interruptrutinerna för DMA i STM32F har jag while loopar eftersom det ibland inte fungerar att cleara interrupten på första försöken.

Kod: Markera allt

/* clear interrupts */
do {
  DMA1->LIFCR = DMAALLIF3;
  lisr = DMA1->LISR;
} while (DMAALLIF3 & lisr);
Det är möjligt att det är fixat i kislet nu men eftersom det fungerar har jag ingen lust att testa utan.
Jag tycker det där ser riktigt farligt ut. Du kan inte lägga en räknare på och ge upp efter x antal försök? Vad vet jag hur resten av din kod ser ut, det kanske inte hjälper att den kan misslyckas utan då är allt förlorat ändå. Men precis som icecap var inne på, det där kan ju hänga och man bara fattar inte vad som kan vara fel. Det kanske skulle kunna vara ok om du har watchdog och vill tvinga fram en reset, men då borde det framgå tydligt (kommentar).
Jag hade inte kunnat sova om natten om jag visste att jag hade en sån konstruktion, särskilt om man inte kan 'lita' på hårdvaran.
Sen inser jag själv att jag uttryckte mig klantigt. Visst kan man koda QnD, bara få något att funka. Jag tänkte kanske mer på implementera något som man vet är skevt redan från början, eller att använda könsord för tempvariabler t.ex. Sånt glöms bort och helt plötsligt är det incheckat.
Det är helt enkelt lättare att försöka göra så 'rätt' som möjligt från början.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Problem med AVR USART TX

Inlägg av lillahuset »

Jag tycker det är en utmärkt lösning eftersom det är helt uppenbart att det har skitit sig om det skiter sig. Det vore mycket värre om det ibland försvann data pga interrupten för DMA inte fungerar som de ska. Ursprunget är en "work around" från ST. Det har snurrat i hundratals burkar i över fem år.
mAVRick
Inlägg: 319
Blev medlem: 19 mars 2013, 12:43:43
Ort: Östersund

Re: Problem med AVR USART TX

Inlägg av mAVRick »

Tja, det kan du ju tycka. Och jag kan tycka att sådär borde det inte se ut.
Jag tänker inte bråka om det, det är din kod, dina prylar.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Problem med AVR USART TX

Inlägg av lillahuset »

Och jag respekterar din åsikt. :)
mAVRick
Inlägg: 319
Blev medlem: 19 mars 2013, 12:43:43
Ort: Östersund

Re: Problem med AVR USART TX

Inlägg av mAVRick »

:tumupp: dito :D
Skriv svar