So, if 1+1=2, I can say for sure that the Linux AVR toolchain is BUGGY at the maximal level! Crap....
This is not the first problem that I'm having with the toolchain, with Tiny but with Arduino/Atmega328 too.
With ArchLinux I had to heavely patch all the toolchain because I had a lot of problems compiling the sketches, and after I patched everything, I discovered the above bug.... that was replicated on the latest Ubuntu 11.10 too.... So I roll back to Ubuntu 11.04.... and a new bug has emerged!!
:0
Start thinking to switch to PIC for their Linux support....
XD
By the way, I don't understand why Atmel isn't supporting other OSes than Windows! Atmel is very common through hobbiest and hackers but a lot of them use Linux rather than Win's....
For "Linux support" I mean an official IDE. AVRStudio works only under Windows. Microchip has its IDE both for Win and Linux. The AVR toolchain under Linux has always been bugged (starting from binutils-avr ending to gcc-avr)...
Those are patches to apply to the GNU AVR tools. But it seems that they are a little bit out of date since they seem to be dated feb/2011. Debian/Ubuntu should already have the AVR tools patched.
One question about PWM with Attiny85.
In the file pins_arduino.c there are the alternative functions of the pins, and PWM signals are marked on pins D0 and D1.
#if defined( __AVR_ATtinyX5__ )
// ATMEL ATTINY45 / ARDUINO
//
// +-\/-+
// Ain0 (D 5) PB5 1| |8 VCC
// Ain3 (D 3) PB3 2| |7 PB2 (D 2) INT0 Ain1
// Ain2 (D 4) PB4 3| |6 PB1 (D 1) pwm1
// GND 4| |5 PB0 (D 0) pwm0
// +----+
// these arrays map port names (e.g. port B) to the
// appropriate addresses for various functions (e.g. reading
// and writing) tiny45 only port B
But the datasheet says that both timers 0 & 1 are capables of PWM functions, and that the PWM pin are D0, D1, D3 and D4 (to be more exact, D3 is the inverse of the signal that is present on D4). Does the core Tiny support PWM signals on pin D4 too? Is the pin mapping out of date?
I have a AtT4313 and want to use its inboard UART. When ever it try to upload the sketch it fails with this error:
Binary sketch size: 2350 bytes (of a 4096 byte maximum)
avrdude: ERROR: address 0x0810 out of range at line 129 of C:\Users\xxx\AppData\Local\Temp\build7553309411575013505.tmp\RX_Blink_ATT2313.cpp.hex
avrdude: write to file 'C:\Users\xxx\AppData\Local\Temp\build7553309411575013505.tmp\RX_Blink_ATT2313.cpp.hex' failed
Im trying to get a Serial LCD to display data. Here is the code:
Question about SoftwareSerial support. Is there any change to have the new SoftwareSerial lib that is shipped with Arduino 1.0 works with the last Tiny core 1.0? I tried today an example but I get some errors during compilation. Or should I continue to use the old NewSoftSerial modded to work with Tiny cores?
leo72:
Is there any change to have the new SoftwareSerial lib that is shipped with Arduino 1.0 works with the last Tiny core 1.0?
I don't know. I believe the Arduino 1.0 SoftwareSerial is very very similar to the previous NewSoftSerial. If they are similar then SoftwareSerial, like NewSoftSerial has to be modified to work on ATtiny processors.
I tried today an example but I get some errors during compilation. Or should I continue to use the old NewSoftSerial modded to work with Tiny cores?
The libraries are different. SoftwareSerial has been changed and if you download NewSoftSerial1.2 you can check that libraries don't match.
SoftwareSerial has taken the "write" method instead of "print" one, following the new trend of the Arduino IDE 1.0 but those methods conflict the some code in the tiny/cores/tiny/Print.h file.
I will try to use the "old" & modded NewSoftSerial1.2 instead of the SoftwareSerial.
One question. Why did you remove the links to the old Tiny core from Google code? Isn't it possible to download the old 0022 version?
Forget about it.... I had just to click on "deprecated downloads"
using linux mint I followed the instructions on arduinos page to install 1.0 on ubuntu, everything works fine until I hit the tiny, using the latest and greatest core I get the following
In file included from /usr/share/arduino/hardware/arduino/cores/tiny/WProgram.h:17,
from /usr/share/arduino/hardware/arduino/cores/tiny/Arduino.h:4,
from Blink.cpp:8:
/usr/share/arduino/hardware/arduino/cores/tiny/TinyDebugSerial.h:629: error: ‘TINY_DEBUG_SERIAL_REGISTER’ was not declared in this scope
/usr/share/arduino/hardware/arduino/cores/tiny/TinyDebugSerial.h:629: error: ‘TINY_DEBUG_SERIAL_BIT’ was not declared in this scope
/usr/share/arduino/hardware/arduino/cores/tiny/TinyDebugSerial.h:629: error: template argument 1 is invalid
/usr/share/arduino/hardware/arduino/cores/tiny/TinyDebugSerial.h:629: error: template argument 2 is invalid
/usr/share/arduino/hardware/arduino/cores/tiny/TinyDebugSerial.h:629: error: invalid type in declaration before ‘;’ token
/usr/share/arduino/hardware/arduino/cores/tiny/TinyDebugSerial.h:630: error: ‘TINY_DEBUG_SERIAL_REGISTER’ was not declared in this scope
/usr/share/arduino/hardware/arduino/cores/tiny/TinyDebugSerial.h:630: error: ‘TINY_DEBUG_SERIAL_BIT’ was not declared in this scope
/usr/share/arduino/hardware/arduino/cores/tiny/TinyDebugSerial.h:630: error: template argument 1 is invalid
/usr/share/arduino/hardware/arduino/cores/tiny/TinyDebugSerial.h:630: error: template argument 2 is invalid
/usr/share/arduino/hardware/arduino/cores/tiny/TinyDebugSerial.h:630: error: invalid type in declaration before ‘;’ token
/usr/share/arduino/hardware/arduino/cores/tiny/TinyDebugSerial.h:631: error: ‘TINY_DEBUG_SERIAL_REGISTER’ was not declared in this scope
/usr/share/arduino/hardware/arduino/cores/tiny/TinyDebugSerial.h:631: error: ‘TINY_DEBUG_SERIAL_BIT’ was not declared in this scope
/usr/share/arduino/hardware/arduino/cores/tiny/TinyDebugSerial.h:631: error: template argument 1 is invalid
/usr/share/arduino/hardware/arduino/cores/tiny/TinyDebugSerial.h:631: error: template argument 2 is invalid
/usr/share/arduino/hardware/arduino/cores/tiny/TinyDebugSerial.h:631: error: invalid type in declaration before ‘;’ token
/usr/share/arduino/hardware/arduino/cores/tiny/TinyDebugSerial.h: In member function ‘void TinyDebugSerial::begin(long int)’:
/usr/share/arduino/hardware/arduino/cores/tiny/TinyDebugSerial.h:682: error: cannot convert ‘TinyDebugSerialWriter_9600*’ to ‘TinyDebugSerialWriter*’ in assignment
/usr/share/arduino/hardware/arduino/cores/tiny/TinyDebugSerial.h:686: error: cannot convert ‘TinyDebugSerialWriter_38400*’ to ‘TinyDebugSerialWriter*’ in assignment