<?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=5419&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-01-04T14:56:06+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=5419&amp;mode</id>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2014-01-04T14:56:06+01:00</updated>
<published>2014-01-04T14:56:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5419&amp;p=63761#p63761</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5419&amp;p=63761#p63761"/>
<title type="html"><![CDATA[Re: Błąd podczas kompilacji.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5419&amp;p=63761#p63761"><![CDATA[
Używasz wskaźnika na coś co się nazywa ram_cfg<br />a coś takiego nie jest w Twoim programie zdefiniowane.<br />W comm.h masz tylko coś takiego:<br />[syntax=c]extern TCFG ram_cfg;            // dane w pamięci RAM[/syntax]<br />No i tego pliku w którym to extern jest zdefiniowane brak <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 4 sty 2014, o 14:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zaba]]></name></author>
<updated>2014-01-04T14:48:11+01:00</updated>
<published>2014-01-04T14:48:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5419&amp;p=63759#p63759</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5419&amp;p=63759#p63759"/>
<title type="html"><![CDATA[Re: Błąd podczas kompilacji.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5419&amp;p=63759#p63759"><![CDATA[
Witam <br />wygląda na to ,że nie masz zdefiniowanej zmiennej <br /><br />ram_cfg <br /><br />Domyślam się tylko ,że powinna ona być gdzieś w pliku w którym<br />definiujesz zmienną <br /><br />eem_cfg i pgm_cfg<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1044">Zaba</a> — 4 sty 2014, o 14:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Morcinek92]]></name></author>
<updated>2014-01-04T14:18:55+01:00</updated>
<published>2014-01-04T14:18:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5419&amp;p=63752#p63752</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5419&amp;p=63752#p63752"/>
<title type="html"><![CDATA[Błąd podczas kompilacji.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5419&amp;p=63752#p63752"><![CDATA[
Witam,<br />Posiadam projekt od kolegi z forum, któremu wszystko się ładnie kompiluje, a ja po dodaniu go do eclipsa i próbie kompilacji otrzymuje taki błąd: <br /><br /><br />**** Build of configuration Release for project DS18B20_PCF_LED ****<br /><br />make all <br />Building file: ../MK_USART/mkuart.c<br />Invoking: AVR Compiler<br />avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega32 -DF_CPU=11059200UL -MMD -MP -MF&quot;MK_USART/mkuart.d&quot; -MT&quot;MK_USART/mkuart.d&quot; -c -o &quot;MK_USART/mkuart.o&quot; &quot;../MK_USART/mkuart.c&quot;<br />Finished building: ../MK_USART/mkuart.c<br /> <br />Building file: ../I2C_TWI/i2c_twi.c<br />Invoking: AVR Compiler<br />avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega32 -DF_CPU=11059200UL -MMD -MP -MF&quot;I2C_TWI/i2c_twi.d&quot; -MT&quot;I2C_TWI/i2c_twi.d&quot; -c -o &quot;I2C_TWI/i2c_twi.o&quot; &quot;../I2C_TWI/i2c_twi.c&quot;<br />Finished building: ../I2C_TWI/i2c_twi.c<br /> <br />Building file: ../1Wire/crc8.c<br />Invoking: AVR Compiler<br />avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega32 -DF_CPU=11059200UL -MMD -MP -MF&quot;1Wire/crc8.d&quot; -MT&quot;1Wire/crc8.d&quot; -c -o &quot;1Wire/crc8.o&quot; &quot;../1Wire/crc8.c&quot;<br />Finished building: ../1Wire/crc8.c<br /> <br />Building file: ../1Wire/ds18x20.c<br />Invoking: AVR Compiler<br />avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega32 -DF_CPU=11059200UL -MMD -MP -MF&quot;1Wire/ds18x20.d&quot; -MT&quot;1Wire/ds18x20.d&quot; -c -o &quot;1Wire/ds18x20.o&quot; &quot;../1Wire/ds18x20.c&quot;<br />Finished building: ../1Wire/ds18x20.c<br /> <br />Building file: ../1Wire/onewire.c<br />Invoking: AVR Compiler<br />avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega32 -DF_CPU=11059200UL -MMD -MP -MF&quot;1Wire/onewire.d&quot; -MT&quot;1Wire/onewire.d&quot; -c -o &quot;1Wire/onewire.o&quot; &quot;../1Wire/onewire.c&quot;<br />Finished building: ../1Wire/onewire.c<br /> <br />Building file: ../common.c<br />Invoking: AVR Compiler<br />avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega32 -DF_CPU=11059200UL -MMD -MP -MF&quot;common.d&quot; -MT&quot;common.d&quot; -c -o &quot;common.o&quot; &quot;../common.c&quot;<br />Finished building: ../common.c<br /> <br />Building file: ../d_led.c<br />Invoking: AVR Compiler<br />avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega32 -DF_CPU=11059200UL -MMD -MP -MF&quot;d_led.d&quot; -MT&quot;d_led.d&quot; -c -o &quot;d_led.o&quot; &quot;../d_led.c&quot;<br />Finished building: ../d_led.c<br /> <br />Building file: ../komendy_at.c<br />Invoking: AVR Compiler<br />avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega32 -DF_CPU=11059200UL -MMD -MP -MF&quot;komendy_at.d&quot; -MT&quot;komendy_at.d&quot; -c -o &quot;komendy_at.o&quot; &quot;../komendy_at.c&quot;<br />Finished building: ../komendy_at.c<br /> <br />Building file: ../main.c<br />Invoking: AVR Compiler<br />avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega32 -DF_CPU=11059200UL -MMD -MP -MF&quot;main.d&quot; -MT&quot;main.d&quot; -c -o &quot;main.o&quot; &quot;../main.c&quot;<br />../main.c: In function 'main':<br />../main.c:85: warning: pointer targets in passing argument 1 of 'UART_RX_STR_EVENT' differ in signedness<br />Finished building: ../main.c<br /> <br />Building target: DS18B20_PCF_LED.elf<br />Invoking: AVR C Linker<br />avr-gcc -Wl,-Map,DS18B20_PCF_LED.map -mmcu=atmega32 -o &quot;DS18B20_PCF_LED.elf&quot;  ./MK_USART/mkuart.o  ./I2C_TWI/i2c_twi.o  ./1Wire/crc8.o ./1Wire/ds18x20.o ./1Wire/onewire.o  ./common.o ./d_led.o ./komendy_at.o ./main.o   <br />./common.o: In function `check_and_load_defaults':<br />common.c:(.text+0x14): undefined reference to `ram_cfg'<br />common.c:(.text+0x16): undefined reference to `ram_cfg'<br />common.c:(.text+0x1e): undefined reference to `ram_cfg'<br />common.c:(.text+0x20): undefined reference to `ram_cfg'<br />make: *** [DS18B20_PCF_LED.elf] Error 1<br /><br />**** Build Finished ****<br /><br />pliki common.c<br />[syntax=c]/*<br /> * common.c<br /> *<br /> *  Created on: 07-06-2013<br /> *      Author: XXX<br /> */<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br /><br />#include &quot;common.h&quot;<br /><br /><br />volatile uint16_t Timer1, Timer2, Timer3, Timer4, Timer5;/* timery programowe 100Hz */<br />volatile uint8_t ADC_Buf&#91;BUF_SIZE&#93;; //bufor cykliczny<br />volatile uint8_t ADC_Head; //indeks głowy bufora<br />volatile uint8_t ADC_Tail; // indeks ogona bufora<br /><br /><br /><br />void copy_eem_to_ram( void ) {<br />eeprom_busy_wait();<br />//eeprom_read_block( &amp;ram_cfg, &amp;eem_cfg, sizeof(ram_cfg) );<br />}<br /><br />void copy_ram_to_eem( void ) {<br />eeprom_busy_wait();<br />//eeprom_write_block( &amp;ram_cfg, &amp;eem_cfg, sizeof(ram_cfg));<br />}<br /><br />void copy_pgm_to_ram( void ) {<br />//memcpy_P( &amp;ram_cfg, &amp;pgm_cfg, sizeof(ram_cfg) );<br />}<br /><br />void load_defaults( void ) {<br />//copy_pgm_to_ram();<br />//copy_ram_to_eem();<br />}<br /><br />void check_and_load_defaults( void ) {<br />uint8_t i, len = sizeof( ram_cfg );<br />uint8_t * ram_wsk = (uint8_t*)&amp;ram_cfg;<br /><br />copy_eem_to_ram();<br />for(i=0; i&lt;len; i++) {<br />if( 0xff == *ram_wsk++ ) continue;<br />break;<br />}<br /><br />if( i == len ) {<br />load_defaults();<br />}<br /><br />}<br /><br />uint8_t ADC_get(void){<br /><br />//sprawdzam czy indeksy są równe<br />if(ADC_Head==ADC_Tail) return 0;<br /><br />//obliczam i zapamiętuje nowy indeks ogona<br />ADC_Tail = (ADC_Tail+1) &amp; BUF_MASK;<br /><br />return ADC_Buf&#91;ADC_Tail&#93;; //zwracam bajt pobrany z bufora jako rezultat funkcji<br />}<br /><br /><br />// atmega8<br />//void soft_timer_init(void){<br />//<br />///* ustawienie TIMER0 dla F_CPU=8MHz */<br />//TCCR1A |= (1&lt;&lt;WGM12);/* tryb CTC */<br />//TCCR1B |= (1&lt;&lt;CS11);/* preskaler = 64 */<br />//OCR1A = F_CPU/8UL/100UL;<br />//TIMSK |= (1&lt;&lt;OCIE1A);/* zezwolenie na przerwanie CompareMatch */<br />//<br />//}<br /><br />//---atmega32<br />void soft_timer_init(void){<br /><br />/* ustawienie TIMER0 dla F_CPU=11,0592MHz */<br />TCCR0 |= (1&lt;&lt;WGM01);/* tryb CTC */<br />TCCR0 |= (1&lt;&lt;CS02)|(1&lt;&lt;CS00);/* preskaler = 1024 */<br />OCR0 = 108;/* dodatkowy podział przez 108 (rej. przepełnienia) */<br />TIMSK |= (1&lt;&lt;OCIE0);/* zezwolenie na przerwanie CompareMatch */<br />/* przerwanie wykonywane z częstotliwością ok 10ms (100 razy na sekundę) */<br />/* do naszych celów nie musi być to bardzo dokładne 10ms */<br />}<br /><br />void soft_timer2_init(void){<br /><br />/* ustawienie TIMER0 dla F_CPU=11,0592MHz */<br />TCCR2 |= (1&lt;&lt;WGM21);/* tryb CTC */<br />TCCR2 |= (1&lt;&lt;CS22)|(1&lt;&lt;CS21)|(1&lt;&lt;CS20);/* preskaler = 1024 */<br />OCR2 = 108;/* dodatkowy podział przez 108 (rej. przepełnienia) */<br />TIMSK |= (1&lt;&lt;OCIE2);/* zezwolenie na przerwanie CompareMatch */<br />/* przerwanie wykonywane z częstotliwością ok 10ms (100 razy na sekundę) */<br />/* do naszych celów nie musi być to bardzo dokładne 10ms */<br /><br />}<br /><br /><br />/* ================= PROCEDURA OBSŁUGI PRZERWANIA – COMPARE MATCH */<br />/* pełni funkcję timera programowego wyznaczającego podstawę czasu = 1s */<br />ISR(TIMER1_COMPA_vect)<br />{<br />uint16_t n;<br /><br />n = Timer1;/* 100Hz Timer1 */<br />if (n) {<br />Timer1 = --n;<br />//flag1++;<br />}<br />n = Timer2;/* 100Hz Timer2 */<br />if (n) Timer2 = --n;<br />n = Timer3;/* 100Hz Timer3 */<br />if (n) Timer3 = --n;<br />n = Timer4;/* 100Hz Timer4 */<br />if (n) Timer4 = --n;<br />n = Timer5;/* 100Hz Timer5 */<br />if (n) Timer5 = --n;<br />}<br />ISR(TIMER2_COMP_vect)<br />{<br />uint16_t n;<br /><br />n = Timer1;/* 100Hz Timer1 */<br />if (n) {<br />Timer1 = --n;<br />//flag1++;<br />}<br />n = Timer2;/* 100Hz Timer2 */<br />if (n) Timer2 = --n;<br />n = Timer3;/* 100Hz Timer3 */<br />if (n) Timer3 = --n;<br />n = Timer4;/* 100Hz Timer4 */<br />if (n) Timer4 = --n;<br />n = Timer5;/* 100Hz Timer5 */<br />if (n) Timer5 = --n;<br />}[/syntax]<br /><br />oraz common.h<br />[syntax=c]/*<br /> * common.h<br /> *<br /> *  Created on: 07-06-2013<br /> *      Author: XXX<br /> */<br /><br />#ifndef COMMON_H_<br />#define COMMON_H_<br /><br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br /><br />#define BUF_SIZE 32//bufor o rozmiarze 32 bajtów<br />#define BUF_MASK (BUF_SIZE - 1)  //maska bufora<br /><br />extern volatile uint8_t ADC_Buf&#91;BUF_SIZE&#93;; //bufor cykliczny<br />extern volatile uint8_t ADC_Head; //indeks głowy bufora<br />extern volatile uint8_t ADC_Tail; // indeks ogona bufora<br /><br />typedef struct {<br />uint16_t rec&#91;10&#93;;<br />uint16_t play&#91;10&#93;;<br /><br />}TCFG;<br /><br />extern volatile uint16_t Timer1, Timer2, Timer3, Timer4, Timer5;/* timery programowe 100Hz */<br /><br />const extern TCFG pgm_cfg PROGMEM;// dane w pamięci FLASH<br />extern TCFG eem_cfg EEMEM;// dane w pamięci EEPROM<br />extern TCFG ram_cfg;// dane w pamięci RAM<br /><br />uint8_t ADC_get(void); //funkcja pobierająca bajt z bufora cyklicznego<br /><br />void soft_timer0_init(void);<br />void soft_timer2_init(void);<br /><br />void check_and_load_defaults( void );<br />void copy_eem_to_ram( void );<br />void copy_ram_to_eem( void );<br />void copy_pgm_to_ram( void );<br />void load_defaults( void );<br /><br />#endif /* COMMON_H_ */[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=903">Morcinek92</a> — 4 sty 2014, o 14:18</p><hr />
]]></content>
</entry>
</feed>