<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=4&amp;t=18714&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-06-28T21:24:13+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=18714&amp;mode</id>
<entry>
<author><name><![CDATA[Jatsekku]]></name></author>
<updated>2017-06-28T21:24:13+01:00</updated>
<published>2017-06-28T21:24:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18714&amp;p=191424#p191424</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18714&amp;p=191424#p191424"/>
<title type="html"><![CDATA[Re: Pliki - io.h Znaczniki obligatoryjne :)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18714&amp;p=191424#p191424"><![CDATA[
Odpowiem sobie sam z racji iż chętnych niestety brakło. Może się to komuś przyda.<br /><br />1/2 Nie można jeśli chcę się zapewnić zgodność nazwa wektrów, przykład <br />[syntax=c]#define INT0_vect_num1<br />#define INT0_vect_VECTOR(1)<br />#define SIG_INTERRUPT0_VECTOR(1)<br />//można zmienić na:<br />#define GI0_EIR0_vect_num1<br />#define GI0_EIR0_vect[/syntax]    _VECTOR(1)<br />przyrostki &quot;_vect_num&quot; oraz &quot;_vect&quot; są istotne. Nie doszukałem się w plikach ich użycia, ale wszystkie procesory mają to tak zrealizowane w swoich plikach. Jednocześnie nowsze np Xmegi nie posiadają już niewykorzystywanego SIG.<br /><br />3. Wszelkie makrodefinicje #pragma są zbędne co odnosi się do powyższego, pozostałe muszą pozostać w formie niezmienionej RAMEND, FUSy, SIGNATURE itp, wyglądają tak samo w każdej wersji pliku. Doczytałem również iż część z nich odnosi się do samego kompilatora<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3920">Jatsekku</a> — 28 cze 2017, o 21:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jatsekku]]></name></author>
<updated>2017-06-28T02:53:10+01:00</updated>
<published>2017-06-28T02:53:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18714&amp;p=191368#p191368</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18714&amp;p=191368#p191368"/>
<title type="html"><![CDATA[Pliki - io.h Znaczniki obligatoryjne :)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18714&amp;p=191368#p191368"><![CDATA[
Witam,<br />Panowie, mam taki problem, przy tworzeniu/edycji pliku ioxxx.h:<br /><br />- Nazwy bitów w rejestrze można zmieniać dowolnie a jedynym czynnikiem wiążącym jest numer tego bitu, przykład:<br />[syntax=c]#define TWSTA   5<br />//zamiana na:<br />#define TWI0_BIT_STA5[/syntax]<br />- Nazwy rejestrów również można zmieniać praktycznie dowolnie, pamiętają o makrze _SFR_IO8(0xXX)<br />[syntax=c]#define TWCR    _SFR_IO8(0x36)<br />//zamiana na:<br />#define TWI0_REG_C_SFR_IO8(0x36)[/syntax]<br /><br />I dalej rodzą się pytania:<br />1. Czy nazwę przerwania można zamienić w taki sposób? :<br />[syntax=c]#define TIMER2_COMP_vect_VECTOR(3)<br />//zamiana na:<br />#define TC2_INT_COMP_VECTOR(3)[/syntax]<br />Czy może też ten przyrostek &quot;_vect&quot; jest konieczny bo wykorzystują go jakieś moduły toolchaina (asembler/linker/kompilator)?<br /><br />2. W jakim celu wykorzystywany jest również taki zapis? O ile drugi zapis już definiuje numer wektora, a trzeci jest starym standardem zapisu to po co ten pierwszy? Czy (jak wyżej) jest on wykorzystywany przez narzędzia toolchaina?<br />[syntax=c]#define TIMER2_COMP_vect_num3<br />#define TIMER2_COMP_vect_VECTOR(3)<br />#define SIG_OUTPUT_COMPARE2_VECTOR(3) //Odnosząc się do makra #pragma, rozumiem, że mogę to całkowicie //pominąć/usunąć[/syntax]<br /><br />3. Ogółem mam wątpliwości gdzie wykorzystywane są makra z poniższego zapisu i w jakim stopniu można je zmieniać? :<br />[syntax=c]//Przypuszczam, że od tego miejsca mają wyglądać dokładnie tak jak w oryginale <br />//(ogółem nigdy ich nie wykorzystywałem w programie, dlatego przypuszczam, że są to informację dla narzędzi)<br />#define _VECTORS_SIZE 84<br /><br />/* Constants */<br />#define SPM_PAGESIZE    128<br />#define RAMSTART        (0x60)<br />#define RAMEND          0x45F<br />#define XRAMEND         RAMEND<br />#define E2END           0x1FF<br />#define E2PAGESIZE      4<br />#define FLASHEND        0x3FFF<br /><br /><br />/* Fuses */<br /><br />#define FUSE_MEMORY_SIZE 2<br /><br />/* Low Fuse Byte */<br />#define FUSE_CKSEL0      (unsigned char)~_BV(0)<br />#define FUSE_CKSEL1      (unsigned char)~_BV(1)<br />#define FUSE_CKSEL2      (unsigned char)~_BV(2)<br />#define FUSE_CKSEL3      (unsigned char)~_BV(3)<br />#define FUSE_SUT0        (unsigned char)~_BV(4)<br />#define FUSE_SUT1        (unsigned char)~_BV(5)<br />#define FUSE_BODEN       (unsigned char)~_BV(6)<br />#define FUSE_BODLEVEL    (unsigned char)~_BV(7)<br />#define LFUSE_DEFAULT (FUSE_CKSEL1 &amp; FUSE_CKSEL2 &amp; FUSE_CKSEL3 &amp; FUSE_SUT0)<br /><br />/* High Fuse Byte */<br />#define FUSE_BOOTRST     (unsigned char)~_BV(0)<br />#define FUSE_BOOTSZ0     (unsigned char)~_BV(1)<br />#define FUSE_BOOTSZ1     (unsigned char)~_BV(2)<br />#define FUSE_EESAVE      (unsigned char)~_BV(3)<br />#define FUSE_CKOPT       (unsigned char)~_BV(4)<br />#define FUSE_SPIEN       (unsigned char)~_BV(5)<br />#define FUSE_JTAGEN      (unsigned char)~_BV(6)<br />#define FUSE_OCDEN       (unsigned char)~_BV(7)<br />#define HFUSE_DEFAULT (FUSE_BOOTSZ0 &amp; FUSE_BOOTSZ1 &amp; FUSE_SPIEN &amp; FUSE_JTAGEN)<br /><br /><br />/* Lock Bits */<br />#define __LOCK_BITS_EXIST<br />#define __BOOT_LOCK_BITS_0_EXIST<br />#define __BOOT_LOCK_BITS_1_EXIST <br /><br /><br />/* Signature */<br />#define SIGNATURE_0 0x1E<br />#define SIGNATURE_1 0x94<br />#define SIGNATURE_2 0x03<br /><br /><br />//To również jest zagwozdka - ale z tego co rozumiem kompilator zgłasza błąd kiedy zostanie wykorzystane takie makro<br />/* Deprecated items */<br />#if !defined(__AVR_LIBC_DEPRECATED_ENABLE__)<br /><br />#pragma GCC system_header<br /><br />#pragma GCC poison <br /><br />#pragma GCC poison SIG_INTERRUPT0<br />#pragma GCC poison SIG_INTERRUPT1<br />#pragma GCC poison SIG_OUTPUT_COMPARE2<br />#pragma GCC poison SIG_OVERFLOW2<br />#pragma GCC poison SIG_INPUT_CAPTURE1<br />#pragma GCC poison SIG_OUTPUT_COMPARE1A<br />#pragma GCC poison SIG_OUTPUT_COMPARE1B<br />#pragma GCC poison SIG_OVERFLOW1<br />#pragma GCC poison SIG_OVERFLOW0<br />#pragma GCC poison SIG_SPI<br />#pragma GCC poison SIG_USART_RECV<br />#pragma GCC poison SIG_UART_RECV<br />#pragma GCC poison SIG_USART_DATA<br />#pragma GCC poison SIG_UART_DATA<br />#pragma GCC poison SIG_USART_TRANS<br />#pragma GCC poison SIG_UART_TRANS<br />#pragma GCC poison SIG_ADC<br />#pragma GCC poison SIG_EEPROM_READY<br />#pragma GCC poison SIG_COMPARATOR<br />#pragma GCC poison SIG_2WIRE_SERIAL<br />#pragma GCC poison SIG_INTERRUPT2<br />#pragma GCC poison SIG_OUTPUT_COMPARE0<br />#pragma GCC poison SIG_SPM_READY<br /><br />#endif  /* !defined(__AVR_LIBC_DEPRECATED_ENABLE__) */[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3920">Jatsekku</a> — 28 cze 2017, o 02:53</p><hr />
]]></content>
</entry>
</feed>