Arduino Serial problem

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Úterý Březen 28 21:59:57 CEST 2017


Tak pokud by se to nekomu hodilo, problem byl v HardwareSerial.cpp

   //set the data bits, parity, and stop bits
#if defined(__AVR_ATmega8__) || defined(__AVR_ATmega32__)
   config |= 0x80; // select UCSRC register (shared with UBRRH)
#endif
   *_ucsrc = config;

bylo potreba doplnit || defined(__AVR_ATmega32__),  jinak to prepsalo 
UBRRH ktery je na stejne adrese jako UCSRC u mega32...
Verze 1.6.13, nevim, jestli je to chyba ale jinde se s ruznymi verzemi 
MCU pocita.


Dne 23.03.2017 v 18:26 Tomas Urbanek napsal(a):
> Pokud se jedna o vlastni port, zkontroloval bych nastaveni hw registru pro dany mcu dle datasheetu. To je prvni vec kterou je treba udelat.
>
> T
>
> 23. 3. 2017 v 17:48, Jaroslav Buchta <jaroslav.buchta na hascomp.cz>:
>
>> Delay je OK.
>> Koukal jsem i do knihovny HardwareSerial.cpp a nenapada me, v cem by mohl byt problem, pokud teda neni nejaky rozdil v HW nezi atmega328 a 32...
>>
>> Dne 23.03.2017 v 17:26 Pavel Kutina napsal(a):
>>> A jen pro poradek - delay vychazi dlouhy spravne?
>>>
>>> Pavel Kutina
>>>
>>>
>>> ----- Original Message ----- From: "Jaroslav Buchta" <jaroslav.buchta na hascomp.cz>
>>> To: "HW-news" <hw-list na list.hw.cz>
>>> Sent: Thursday, March 23, 2017 5:04 PM
>>> Subject: Arduino Serial problem
>>>
>>>
>>> Nez to zacnu nejak zkoumat - mam svuj HW s ATMEGA32, do nej jsem upravil
>>> bootloader, ten funguje, vsechno zatim funguje krome UARTu.
>>>
>>> // the setup function runs once when you press reset or power the board
>>> // the loop function runs over and over again forever
>>> void loop() {
>>>   digitalWrite(4, HIGH);   // turn the LED on (HIGH is the voltage level)
>>>   delay(500);                       // wait for a second
>>>   digitalWrite(4, LOW);    // turn the LED off by making the voltage LOW
>>>   delay(500);
>>>   Serial.begin(9600);
>>>   Serial.write(0x31);// wait for a second
>>>   Serial.end();
>>> }
>>>
>>> To je posledni verze, chova se to tak, ze to evidentne nahodi TxD jako
>>> out, vysle znak a zase spravne deinicializuje, problem je v tom, ze
>>> parametr baudrate zda se nema vliv a ruchlost je konstantni cca 2.2ms/bit...
>>>
>>> AVR radu moc neznam, nema nekdo napad, v cem by mohl byt zakopany pes?
>>>
>>> Puvodni verze Serial.begin v setup a write kdekoli se chovala stejne.
>>>
>>> Definice boardu vypada takto, F_CPU pri prekladu je OK 6MHz
>>>
>>> atmega32-16.name=ATMega32 @ 6 MHz  (external oscillator; BOD disabled)
>>>
>>> atmega32-16.upload.tool=avrdude
>>> atmega32-16.upload.protocol=arduino
>>> atmega32-16.upload.using=arduino
>>> atmega32-16.upload.maximum_size=32000
>>> atmega32-16.upload.maximum_data_size=1024
>>> atmega32-16.upload.speed=57600
>>>
>>> atmega32-16.bootloader.tool=avrdude
>>> atmega32-16.bootloader.low_fuses=0xFF
>>> atmega32-16.bootloader.high_fuses=0xFF
>>> atmega32-16.bootloader.unlock_bits=0x3F
>>> atmega32-16.bootloader.lock_bits=0x2F
>>>
>>> atmega32-16.build.mcu=atmega32
>>> atmega32-16.build.f_cpu=6000000L
>>> atmega32-16.build.board=ATMega32-16e
>>> atmega32-16.build.core=arduino
>>> atmega32-16.build.variant=mega32
>>>
>>> _______________________________________________
>>> 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
>>
>> _______________________________________________
>> 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ší informace o konferenci Hw-list