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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-12-27T11:19:09+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=18&amp;t=5279&amp;mode</id>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2013-12-27T11:19:09+01:00</updated>
<published>2013-12-27T11:19:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5279&amp;p=62436#p62436</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5279&amp;p=62436#p62436"/>
<title type="html"><![CDATA[Re: mkAVRCalculator ArduinoISP - błąd weryfikacji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5279&amp;p=62436#p62436"><![CDATA[
Błąd weryfikacji przy atmega xU2 oraz xU4 będzie się pojawiał .... jest to spowodowane błednym odczytem jednej <br />komórki kalibracyjnej pamieci przez avrdude ... i choć błedu nie ma będzie się on pokazywał ...  wyłacz poprostu weryfikację  i się tym nie przejmuj .... w normalnych warunkach ten proces też stwarza czasem kłopoty , ale nie jest też do niczego potrzebny<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 27 gru 2013, o 11:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-12-27T06:12:52+01:00</updated>
<published>2013-12-27T06:12:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5279&amp;p=62422#p62422</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5279&amp;p=62422#p62422"/>
<title type="html"><![CDATA[Re: mkAVRCalculator ArduinoISP - błąd weryfikacji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5279&amp;p=62422#p62422"><![CDATA[
a!, teraz widzę z obrazka że używasz z avrdude programatora o nazwie &quot;arduino&quot; .... hmm no to tutaj niestety ja nie pomogę - bo kompletnie nie mam i nie miałem tego pod ręką ... to już SunRiver więcej może powiedzieć ale też chyba podał ci jakiś przepis wyżej.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 27 gru 2013, o 06:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Ekstrapolator]]></name></author>
<updated>2013-12-26T22:57:24+01:00</updated>
<published>2013-12-26T22:57:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5279&amp;p=62401#p62401</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5279&amp;p=62401#p62401"/>
<title type="html"><![CDATA[Re: mkAVRCalculator ArduinoISP - błąd weryfikacji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5279&amp;p=62401#p62401"><![CDATA[
Poprawiłem obrazki, dziękuje za podpowiedz z DFU i FLIP<br /><br /><a href="http://arduino.cc/en/Hacking/DFUProgramming8U2"  class="postlink">http://arduino.cc/en/Hacking/DFUProgramming8U2</a><br /><br /> aczkolwiek to dalej nie rozwiązuje problemu dlaczego wyskakuje mi ten błąd.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2072">Ekstrapolator</a> — 26 gru 2013, o 22:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2013-12-26T20:13:36+01:00</updated>
<published>2013-12-26T20:13:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5279&amp;p=62387#p62387</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5279&amp;p=62387#p62387"/>
<title type="html"><![CDATA[Re: mkAVRCalculator ArduinoISP - błąd weryfikacji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5279&amp;p=62387#p62387"><![CDATA[
Ekstrapolator  podmianę w wadu wykonujesz via USB poprzez bootloader DFU programem FLIP<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 26 gru 2013, o 20:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-12-26T20:09:05+01:00</updated>
<published>2013-12-26T20:09:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5279&amp;p=62385#p62385</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5279&amp;p=62385#p62385"/>
<title type="html"><![CDATA[Re: mkAVRCalculator ArduinoISP - błąd weryfikacji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5279&amp;p=62385#p62385"><![CDATA[
źle umieściłeś obrazki, nie można ich powiększyć i zobaczyć szczególnie drugiego i komunikatu<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 26 gru 2013, o 20:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Ekstrapolator]]></name></author>
<updated>2013-12-26T22:42:30+01:00</updated>
<published>2013-12-26T19:56:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5279&amp;p=62382#p62382</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5279&amp;p=62382#p62382"/>
<title type="html"><![CDATA[mkAVRCalculator ArduinoISP - błąd weryfikacji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5279&amp;p=62382#p62382"><![CDATA[
Witam,<br /><br />Do Arduino Leonardo wgrałem kod ze szkicu programatora ISP<br /><br />[syntax=c]// ArduinoISP version 04m3<br />// Copyright (c) 2008-2011 Randall Bohn<br />// If you require a license, see <br />//     http://www.opensource.org/licenses/bsd-license.php<br />//<br />// This sketch turns the Arduino into a AVRISP<br />// using the following arduino pins:<br />//<br />// pin name:    not-mega:         mega(1280 and 2560)<br />// slave reset: 10:               53 <br />// MOSI:        11:               51 <br />// MISO:        12:               50 <br />// SCK:         13:               52 <br />//<br />// Put an LED (with resistor) on the following pins:<br />// 9: Heartbeat   - shows the programmer is running<br />// 8: Error       - Lights up if something goes wrong (use red if that makes sense)<br />// 7: Programming - In communication with the slave<br />//<br />// 23 July 2011 Randall Bohn<br />// -Address Arduino issue 509 :: Portability of ArduinoISP<br />// http://code.google.com/p/arduino/issues/detail?id=509<br />//<br />// October 2010 by Randall Bohn<br />// - Write to EEPROM &gt; 256 bytes<br />// - Better use of LEDs:<br />// -- Flash LED_PMODE on each flash commit<br />// -- Flash LED_PMODE while writing EEPROM (both give visual feedback of writing progress)<br />// - Light LED_ERR whenever we hit a STK_NOSYNC. Turn it off when back in sync.<br />// - Use pins_arduino.h (should also work on Arduino Mega)<br />//<br />// October 2009 by David A. Mellis<br />// - Added support for the read signature command<br />// <br />// February 2009 by Randall Bohn<br />// - Added support for writing to EEPROM (what took so long?)<br />// Windows users should consider WinAVR's avrdude instead of the<br />// avrdude included with Arduino software.<br />//<br />// January 2008 by Randall Bohn<br />// - Thanks to Amplificar for helping me with the STK500 protocol<br />// - The AVRISP/STK500 (mk I) protocol is used in the arduino bootloader<br />// - The SPI functions herein were developed for the AVR910_ARD programmer <br />// - More information at http://code.google.com/p/mega-isp<br /><br />#include &quot;pins_arduino.h&quot;<br />#define RESET     10<br /><br />#define LED_HB    9<br />#define LED_ERR   8<br />#define LED_PMODE 7<br />#define PROG_FLICKER true<br /><br />#define HWVER 2<br />#define SWMAJ 1<br />#define SWMIN 18<br /><br />// STK Definitions<br />#define STK_OK      0x10<br />#define STK_FAILED  0x11<br />#define STK_UNKNOWN 0x12<br />#define STK_INSYNC  0x14<br />#define STK_NOSYNC  0x15<br />#define CRC_EOP     0x20 //ok it is a space...<br /><br />void pulse(int pin, int times);<br /><br />void setup() {<br />  Serial.begin(19200);<br />  pinMode(LED_PMODE, OUTPUT);<br />  pulse(LED_PMODE, 2);<br />  pinMode(LED_ERR, OUTPUT);<br />  pulse(LED_ERR, 2);<br />  pinMode(LED_HB, OUTPUT);<br />  pulse(LED_HB, 2);<br />}<br /><br />int error=0;<br />int pmode=0;<br />// address for reading and writing, set by 'U' command<br />int here;<br />uint8_t buff&#91;256&#93;; // global block storage<br /><br />#define beget16(addr) (*addr * 256 + *(addr+1) )<br />typedef struct param {<br />  uint8_t devicecode;<br />  uint8_t revision;<br />  uint8_t progtype;<br />  uint8_t parmode;<br />  uint8_t polling;<br />  uint8_t selftimed;<br />  uint8_t lockbytes;<br />  uint8_t fusebytes;<br />  int flashpoll;<br />  int eeprompoll;<br />  int pagesize;<br />  int eepromsize;<br />  int flashsize;<br />} <br />parameter;<br /><br />parameter param;<br /><br />// this provides a heartbeat on pin 9, so you can tell the software is running.<br />uint8_t hbval=128;<br />int8_t hbdelta=8;<br />void heartbeat() {<br />  if (hbval &gt; 192) hbdelta = -hbdelta;<br />  if (hbval &lt; 32) hbdelta = -hbdelta;<br />  hbval += hbdelta;<br />  analogWrite(LED_HB, hbval);<br />  delay(20);<br />}<br /><br /><br />void loop(void) {<br />  // is pmode active?<br />  if (pmode) digitalWrite(LED_PMODE, HIGH); <br />  else digitalWrite(LED_PMODE, LOW);<br />  // is there an error?<br />  if (error) digitalWrite(LED_ERR, HIGH); <br />  else digitalWrite(LED_ERR, LOW);<br /><br />  // light the heartbeat LED<br />  heartbeat();<br />  if (Serial.available()) {<br />    avrisp();<br />  }<br />}<br /><br />uint8_t getch() {<br />  while(!Serial.available());<br />  return Serial.read();<br />}<br />void fill(int n) {<br />  for (int x = 0; x &lt; n; x++) {<br />    buff&#91;x&#93; = getch();<br />  }<br />}<br /><br />#define PTIME 30<br />void pulse(int pin, int times) {<br />  do {<br />    digitalWrite(pin, HIGH);<br />    delay(PTIME);<br />    digitalWrite(pin, LOW);<br />    delay(PTIME);<br />  } <br />  while (times--);<br />}<br /><br />void prog_lamp(int state) {<br />  if (PROG_FLICKER)<br />    digitalWrite(LED_PMODE, state);<br />}<br /><br />void spi_init() {<br />  uint8_t x;<br />  SPCR = 0x53;<br />  x=SPSR;<br />  x=SPDR;<br />}<br /><br />void spi_wait() {<br />  do {<br />  } <br />  while (!(SPSR &amp; (1 &lt;&lt; SPIF)));<br />}<br /><br />uint8_t spi_send(uint8_t b) {<br />  uint8_t reply;<br />  SPDR=b;<br />  spi_wait();<br />  reply = SPDR;<br />  return reply;<br />}<br /><br />uint8_t spi_transaction(uint8_t a, uint8_t b, uint8_t c, uint8_t d) {<br />  uint8_t n;<br />  spi_send(a); <br />  n=spi_send(b);<br />  //if (n != a) error = -1;<br />  n=spi_send(c);<br />  return spi_send(d);<br />}<br /><br />void empty_reply() {<br />  if (CRC_EOP == getch()) {<br />    Serial.print((char)STK_INSYNC);<br />    Serial.print((char)STK_OK);<br />  } <br />  else {<br />    error++;<br />    Serial.print((char)STK_NOSYNC);<br />  }<br />}<br /><br />void breply(uint8_t b) {<br />  if (CRC_EOP == getch()) {<br />    Serial.print((char)STK_INSYNC);<br />    Serial.print((char)b);<br />    Serial.print((char)STK_OK);<br />  } <br />  else {<br />    error++;<br />    Serial.print((char)STK_NOSYNC);<br />  }<br />}<br /><br />void get_version(uint8_t c) {<br />  switch(c) {<br />  case 0x80:<br />    breply(HWVER);<br />    break;<br />  case 0x81:<br />    breply(SWMAJ);<br />    break;<br />  case 0x82:<br />    breply(SWMIN);<br />    break;<br />  case 0x93:<br />    breply('S'); // serial programmer<br />    break;<br />  default:<br />    breply(0);<br />  }<br />}<br /><br />void set_parameters() {<br />  // call this after reading paramter packet into buff&#91;&#93;<br />  param.devicecode = buff&#91;0&#93;;<br />  param.revision   = buff&#91;1&#93;;<br />  param.progtype   = buff&#91;2&#93;;<br />  param.parmode    = buff&#91;3&#93;;<br />  param.polling    = buff&#91;4&#93;;<br />  param.selftimed  = buff&#91;5&#93;;<br />  param.lockbytes  = buff&#91;6&#93;;<br />  param.fusebytes  = buff&#91;7&#93;;<br />  param.flashpoll  = buff&#91;8&#93;; <br />  // ignore buff&#91;9&#93; (= buff&#91;8&#93;)<br />  // following are 16 bits (big endian)<br />  param.eeprompoll = beget16(&amp;buff&#91;10&#93;);<br />  param.pagesize   = beget16(&amp;buff&#91;12&#93;);<br />  param.eepromsize = beget16(&amp;buff&#91;14&#93;);<br /><br />  // 32 bits flashsize (big endian)<br />  param.flashsize = buff&#91;16&#93; * 0x01000000<br />    + buff&#91;17&#93; * 0x00010000<br />    + buff&#91;18&#93; * 0x00000100<br />    + buff&#91;19&#93;;<br /><br />}<br /><br />void start_pmode() {<br />  spi_init();<br />  // following delays may not work on all targets...<br />  pinMode(RESET, OUTPUT);<br />  digitalWrite(RESET, HIGH);<br />  pinMode(SCK, OUTPUT);<br />  digitalWrite(SCK, LOW);<br />  delay(50);<br />  digitalWrite(RESET, LOW);<br />  delay(50);<br />  pinMode(MISO, INPUT);<br />  pinMode(MOSI, OUTPUT);<br />  spi_transaction(0xAC, 0x53, 0x00, 0x00);<br />  pmode = 1;<br />}<br /><br />void end_pmode() {<br />  pinMode(MISO, INPUT);<br />  pinMode(MOSI, INPUT);<br />  pinMode(SCK, INPUT);<br />  pinMode(RESET, INPUT);<br />  pmode = 0;<br />}<br /><br />void universal() {<br />  int w;<br />  uint8_t ch;<br /><br />  fill(4);<br />  ch = spi_transaction(buff&#91;0&#93;, buff&#91;1&#93;, buff&#91;2&#93;, buff&#91;3&#93;);<br />  breply(ch);<br />}<br /><br />void flash(uint8_t hilo, int addr, uint8_t data) {<br />  spi_transaction(0x40+8*hilo, <br />  addr&gt;&gt;8 &amp; 0xFF, <br />  addr &amp; 0xFF,<br />  data);<br />}<br />void commit(int addr) {<br />  if (PROG_FLICKER) prog_lamp(LOW);<br />  spi_transaction(0x4C, (addr &gt;&gt; 8) &amp; 0xFF, addr &amp; 0xFF, 0);<br />  if (PROG_FLICKER) {<br />    delay(PTIME);<br />    prog_lamp(HIGH);<br />  }<br />}<br /><br />//#define _current_page(x) (here &amp; 0xFFFFE0)<br />int current_page(int addr) {<br />  if (param.pagesize == 32)  return here &amp; 0xFFFFFFF0;<br />  if (param.pagesize == 64)  return here &amp; 0xFFFFFFE0;<br />  if (param.pagesize == 128) return here &amp; 0xFFFFFFC0;<br />  if (param.pagesize == 256) return here &amp; 0xFFFFFF80;<br />  return here;<br />}<br /><br /><br />void write_flash(int length) {<br />  fill(length);<br />  if (CRC_EOP == getch()) {<br />    Serial.print((char) STK_INSYNC);<br />    Serial.print((char) write_flash_pages(length));<br />  } <br />  else {<br />    error++;<br />    Serial.print((char) STK_NOSYNC);<br />  }<br />}<br /><br />uint8_t write_flash_pages(int length) {<br />  int x = 0;<br />  int page = current_page(here);<br />  while (x &lt; length) {<br />    if (page != current_page(here)) {<br />      commit(page);<br />      page = current_page(here);<br />    }<br />    flash(LOW, here, buff&#91;x++&#93;);<br />    flash(HIGH, here, buff&#91;x++&#93;);<br />    here++;<br />  }<br /><br />  commit(page);<br /><br />  return STK_OK;<br />}<br /><br />#define EECHUNK (32)<br />uint8_t write_eeprom(int length) {<br />  // here is a word address, get the byte address<br />  int start = here * 2;<br />  int remaining = length;<br />  if (length &gt; param.eepromsize) {<br />    error++;<br />    return STK_FAILED;<br />  }<br />  while (remaining &gt; EECHUNK) {<br />    write_eeprom_chunk(start, EECHUNK);<br />    start += EECHUNK;<br />    remaining -= EECHUNK;<br />  }<br />  write_eeprom_chunk(start, remaining);<br />  return STK_OK;<br />}<br />// write (length) bytes, (start) is a byte address<br />uint8_t write_eeprom_chunk(int start, int length) {<br />  // this writes byte-by-byte,<br />  // page writing may be faster (4 bytes at a time)<br />  fill(length);<br />  prog_lamp(LOW);<br />  for (int x = 0; x &lt; length; x++) {<br />    int addr = start+x;<br />    spi_transaction(0xC0, (addr&gt;&gt;8) &amp; 0xFF, addr &amp; 0xFF, buff&#91;x&#93;);<br />    delay(45);<br />  }<br />  prog_lamp(HIGH); <br />  return STK_OK;<br />}<br /><br />void program_page() {<br />  char result = (char) STK_FAILED;<br />  int length = 256 * getch();<br />  length += getch();<br />  char memtype = getch();<br />  // flash memory @here, (length) bytes<br />  if (memtype == 'F') {<br />    write_flash(length);<br />    return;<br />  }<br />  if (memtype == 'E') {<br />    result = (char)write_eeprom(length);<br />    if (CRC_EOP == getch()) {<br />      Serial.print((char) STK_INSYNC);<br />      Serial.print(result);<br />    } <br />    else {<br />      error++;<br />      Serial.print((char) STK_NOSYNC);<br />    }<br />    return;<br />  }<br />  Serial.print((char)STK_FAILED);<br />  return;<br />}<br /><br />uint8_t flash_read(uint8_t hilo, int addr) {<br />  return spi_transaction(0x20 + hilo * 8,<br />  (addr &gt;&gt; 8) &amp; 0xFF,<br />  addr &amp; 0xFF,<br />  0);<br />}<br /><br />char flash_read_page(int length) {<br />  for (int x = 0; x &lt; length; x+=2) {<br />    uint8_t low = flash_read(LOW, here);<br />    Serial.print((char) low);<br />    uint8_t high = flash_read(HIGH, here);<br />    Serial.print((char) high);<br />    here++;<br />  }<br />  return STK_OK;<br />}<br /><br />char eeprom_read_page(int length) {<br />  // here again we have a word address<br />  int start = here * 2;<br />  for (int x = 0; x &lt; length; x++) {<br />    int addr = start + x;<br />    uint8_t ee = spi_transaction(0xA0, (addr &gt;&gt; 8) &amp; 0xFF, addr &amp; 0xFF, 0xFF);<br />    Serial.print((char) ee);<br />  }<br />  return STK_OK;<br />}<br /><br />void read_page() {<br />  char result = (char)STK_FAILED;<br />  int length = 256 * getch();<br />  length += getch();<br />  char memtype = getch();<br />  if (CRC_EOP != getch()) {<br />    error++;<br />    Serial.print((char) STK_NOSYNC);<br />    return;<br />  }<br />  Serial.print((char) STK_INSYNC);<br />  if (memtype == 'F') result = flash_read_page(length);<br />  if (memtype == 'E') result = eeprom_read_page(length);<br />  Serial.print(result);<br />  return;<br />}<br /><br />void read_signature() {<br />  if (CRC_EOP != getch()) {<br />    error++;<br />    Serial.print((char) STK_NOSYNC);<br />    return;<br />  }<br />  Serial.print((char) STK_INSYNC);<br />  uint8_t high = spi_transaction(0x30, 0x00, 0x00, 0x00);<br />  Serial.print((char) high);<br />  uint8_t middle = spi_transaction(0x30, 0x00, 0x01, 0x00);<br />  Serial.print((char) middle);<br />  uint8_t low = spi_transaction(0x30, 0x00, 0x02, 0x00);<br />  Serial.print((char) low);<br />  Serial.print((char) STK_OK);<br />}<br />//////////////////////////////////////////<br />//////////////////////////////////////////<br /><br /><br />////////////////////////////////////<br />////////////////////////////////////<br />int avrisp() { <br />  uint8_t data, low, high;<br />  uint8_t ch = getch();<br />  switch (ch) {<br />  case '0': // signon<br />    error = 0;<br />    empty_reply();<br />    break;<br />  case '1':<br />    if (getch() == CRC_EOP) {<br />      Serial.print((char) STK_INSYNC);<br />      Serial.print(&quot;AVR ISP&quot;);<br />      Serial.print((char) STK_OK);<br />    }<br />    break;<br />  case 'A':<br />    get_version(getch());<br />    break;<br />  case 'B':<br />    fill(20);<br />    set_parameters();<br />    empty_reply();<br />    break;<br />  case 'E': // extended parameters - ignore for now<br />    fill(5);<br />    empty_reply();<br />    break;<br /><br />  case 'P':<br />    start_pmode();<br />    empty_reply();<br />    break;<br />  case 'U': // set address (word)<br />    here = getch();<br />    here += 256 * getch();<br />    empty_reply();<br />    break;<br /><br />  case 0x60: //STK_PROG_FLASH<br />    low = getch();<br />    high = getch();<br />    empty_reply();<br />    break;<br />  case 0x61: //STK_PROG_DATA<br />    data = getch();<br />    empty_reply();<br />    break;<br /><br />  case 0x64: //STK_PROG_PAGE<br />    program_page();<br />    break;<br /><br />  case 0x74: //STK_READ_PAGE 't'<br />    read_page();    <br />    break;<br /><br />  case 'V': //0x56<br />    universal();<br />    break;<br />  case 'Q': //0x51<br />    error=0;<br />    end_pmode();<br />    empty_reply();<br />    break;<br /><br />  case 0x75: //STK_READ_SIGN 'u'<br />    read_signature();<br />    break;<br /><br />    // expecting a command, not CRC_EOP<br />    // this is how we can get back in sync<br />  case CRC_EOP:<br />    error++;<br />    Serial.print((char) STK_NOSYNC);<br />    break;<br /><br />    // anything else we will return STK_UNKNOWN<br />  default:<br />    error++;<br />    if (CRC_EOP == getch()) <br />      Serial.print((char)STK_UNKNOWN);<br />    else<br />      Serial.print((char)STK_NOSYNC);<br />  }<br />}[/syntax]<br /><br /><br /><a href="http://forum.atnel.pl/_obrazki/o/2072/f22c21a7f335db823d809becd7dffb08.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/2072/f22c21a7f335db823d809becd7dffb08.jpg" alt="Obrazek" /></a><br /><br />Odpaliłem mkAVR i chciałem zaprogramować uC odpowiedzialny za obsługę usb w Arduino UNO, kodem do emulacji klawiatury.<br />mkAVR wykrywa poprawnie uC ale przy próbie zapisu wyskakuje błąd weryfikacji jak w zrzucie ekranu.<br /><br /><a href="http://forum.atnel.pl/_obrazki/o/2072/a10c352321ba378478afc2e5932353c0.JPG"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/2072/a10c352321ba378478afc2e5932353c0.JPG" alt="Obrazek" /></a><br /><br />Posiadam pełną licencję na mkAVR.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2072">Ekstrapolator</a> — 26 gru 2013, o 19:56</p><hr />
]]></content>
</entry>
</feed>