Re: Opět jsem v PICu(i)

Zdeněk Aster Zdenek.Aster na seznam.cz
Středa Listopad 16 13:47:53 CET 2016


Trošku odbočím, i když to s tím souvisí a někteří mě za to asi umlátí :-)
Je až s překvapením kolik věcí se dá napsat bez použití přerušení, včetně

přesného časovače a tak podobně. Byl jsem nucen kolegou, že musím

tu aplikaci napsat bez použití přerušení, právě kvůli vzniku problému,

přišel mi ten požadavek dost úchylnej a zbytečný nakonec jsem zjistil, že

to až takový problém není, a to tam byla I2C komunikace, obsluha síťové

karty, časovač, komunikace s hradlovým polem, jeho cílem bylo aby to 

nebylo náchylné na nějaký kousanec kvůli přerušení a světe div se opravdu,

s tím za čtrnáct let nebyl problém. Nedělám si iluze, že i s přerušením by

to chodilo bez chyby, ale byla to zajímavá škola, co vše lze udělat bez

použití přerušení, když člověk musí. Tím samozřejmě nenabádám to přepsat,

ale občas je k zamyšlení že ke "sčítání dvou čísel" někdo potřebuje

použít přerušení :-) Jinak ano většina mých aplikací používá přerušení a u 
seriáku

je to většinou skoro nutnost když nechci zasekat procesor. Ale třeba I2C tam

slave s klidem počká než se rozmyslím co chci dělat...




Jinak to teda bylo na 8bit AVR od atmelu.




Zdeněk Aster



---------- Původní zpráva ----------
Od: Ondřej Janovský <ondrej.janovsky na alarex.cz>
Komu: HW-news <hw-list na list.hw.cz>
Datum: 16. 11. 2016 13:34:01
Předmět: Re: Opět jsem v PICu(i)

"No to tu není, protože by to bylo dlouhé. Kompilátor XC8 dělá dost 
zajímavý kód, který je roztahaný.

Jinak mám problém s tím, že jsem si chtěl ověřit, že se mi zakazuje 
přerušení jak má, tak jsem si umazal povolení přerušení .... kód místo 
toho, aby přestal obsluhovat I2C a Timer, tak fungoval dál. Udělal jsem 
5 překladů a náhrání do procesoru a nic. Po 6 to najednou zase fungovalo 
jak má. Tak tu buď straší, nebo dělám jednu botu za druhou.

A nakonec jsem ještě zkusil vypnout přerušení a udělat porovnání 2x po 
sobě a výsledek je, že se opravdu ty porovnání vyhodnotily rozdílně. A 
podotýkám, proměnné, které porovnávám se nenastavují ani v jednom přerušení.

On 11/16/2016 13:24, Jan Waclawek wrote:
> No a kde je to slubovane zakazovanie prerusenia pocas citania premennej
> ktora sa meni v preruseni?
>
> wek
>
>
> ----- Original Message ---------------
>> Tak to tu mám. Vypadá to, ľe někdy se střetne přeruąení od I2C s
>> vyhodnocením podmínky a je zle.
>> Zakázal jsem i přeruąení, počkal 8 x NOP a teprve pak vyhodnocoval, ale
>> občas (za daleko deląí dobu) se chyba stane také.
>>
>> Line Address Opcode Label DisAssy
>> 65498 1FFB2 0100 MOVLB 0x0
>> 65499 1FFB4 EFDC GOTO 0x1FFB8
>> 65500 1FFB6 F0FF NOP
>> 65501 1FFB8 0E68 main MOVLW 0x68
>> 65502 1FFBA 6E02 MOVWF a, ACCESS
>> 65503 1FFBC 0EEC MOVLW 0xEC
>> 65504 1FFBE 6E03 MOVWF 0x3, ACCESS
>> 65505 1FFC0 0E06 MOVLW 0x6
>> 65506 1FFC2 6E04 MOVWF 0x4, ACCESS
>> 65507 1FFC4 0E00 MOVLW 0x0
>> 65508 1FFC6 6E05 MOVWF 0x5, ACCESS
>> 65509 1FFC8 0E70 MOVLW 0x70
>> 65510 1FFCA 6E06 MOVWF b, ACCESS
>> 65511 1FFCC 0EED MOVLW 0xED
>> 65512 1FFCE 6E07 MOVWF 0x7, ACCESS
>> 65513 1FFD0 0E06 MOVLW 0x6
>> 65514 1FFD2 6E08 MOVWF 0x8, ACCESS
>> 65515 1FFD4 0E00 MOVLW 0x0
>> 65516 1FFD6 6E09 MOVWF 0x9, ACCESS
>> 65517 1FFD8 5006 MOVF b, W, ACCESS
>> 65518 1FFDA 5C02 SUBWF a, W, ACCESS
>> 65519 1FFDC 5007 MOVF 0x7, W, ACCESS
>> 65520 1FFDE 5803 SUBWFB 0x3, W, ACCESS
>> 65521 1FFE0 5008 MOVF 0x8, W, ACCESS
>> 65522 1FFE2 5804 SUBWFB 0x4, W, ACCESS
>> 65523 1FFE4 5009 MOVF 0x9, W, ACCESS
>> 65524 1FFE6 5805 SUBWFB 0x5, W, ACCESS
>> 65525 1FFE8 A0D8 BTFSS STATUS, 0, ACCESS
>> 65526 1FFEA D002 BRA 0xFFF0
>> 65527 1FFEC 0E01 MOVLW 0x1
>> 65528 1FFEE D001 BRA 0xFFF2
>> 65529 1FFF0 0E00 MOVLW 0x0
>> 65530 1FFF2 6E01 MOVWF __pcstackCOMRAM, ACCESS
>> 65531 1FFF4 EF00 GOTO 0x0
>> 65532 1FFF6 F000 NOP
>>
>>
>> A v "c"
>>
>> unsigned long a = 453736UL;
>> unsigned long b = 454000UL;
>> unsigned char x = (a >= b);
>>
> _______________________________________________
> 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/20161116/1863bae5/attachment.html>


Další informace o konferenci Hw-list