HI! I was following this tutorial
I did that successfully. Now I want to use it on a attiny85.
When I compiled the code for attiny85, It gave me this error
Clock=8MHz
CODE:
// Firmware to capture 2-channels of data and send it out over BlueTooth.
// This implementation is designed to provide data to the Windows Phone 8
// Application
//
// Software is distributed under the MIT License, see ArduinoFirmware_License.txt
// for more details.
// This library provides a frame structure
// for the data.
#include <minsegbus.h>
MinSegBus mbus;
// The SoftwareSerial library is used to provide
// data to the Bluetooth module.
#include <SoftwareSerial.h>
SoftwareSerial BTSerial(10, 11); // RX | TX
#define maxbuffer 0x0400
#define ADCChannels 0x0002
//storage variables
boolean toggle0 = 0;
// Define the ADC
int analogPinCh1 = 0;
int analogPinCh2 = 1;
bool bOutput;
// Buffers
unsigned short iUnsignedShortArray[ADCChannels*2];
unsigned char cBuff[maxbuffer];
// MinSegBus vaiiables
unsigned char iAddress;
unsigned short iUnsignedShort;
unsigned int iBytesReturned;
unsigned int iErrorCount;
unsigned int iIdx;
void setup()
{
// Serial port setup
//Serial.begin(115200);
BTSerial.begin(115200);
// Definitions for the MinSegBus
iAddress = 0x000;
// Tattle tale pins, used to confirm timing
pinMode(9, OUTPUT);
// Get two samples before sending the frame
bOutput = false;
// Timer setup. Begin by disabling the interrupts
// Reference: http://www.instructables.com/id/Arduino-Timer-Interrupts/?ALLSTEPS
cli();
// Timer control registers
TCCR0A = 0; // Set entire TCCR0A register to 0
TCCR0B = 0; // Same for TCCR0B
// Set compare match register for 625Hz increment
OCR0A = 99; // = (16*10^6) / (500*256) - 1 (must be < 256)
// Turn on the CTC mode
TCCR0A |= (1 << WGM01);
// Set CS01 and CS00 bits for 256 prescaler
TCCR0B |= (1 << CS02 );
// Enable the timer compare interrupt
TIMSK0 |= ( 1 << OCIE0A );
// enable interrupts
sei();
}
// All the work is done in the timer interrupt service routine (ISR)
void loop()
{
return;
}
// Timer0 interrupt 1kHz. This also toggles pin 31
// to provide a method to veriy the sampling frequency.
ISR(TIMER0_COMPA_vect){
if (toggle0)
{
digitalWrite(9,HIGH);
toggle0 = 0;
}
else
{
digitalWrite(9,LOW);
toggle0 = 1;
}
if( bOutput)
{
iUnsignedShortArray[2] = analogRead(analogPinCh1);
iUnsignedShortArray[3] = analogRead(analogPinCh2);
iBytesReturned = 0;
iAddress++;
mbus.ToByteArray(iAddress, iUnsignedShortArray, ADCChannels*2, maxbuffer, &cBuff[0], &iBytesReturned);
bOutput = false;
}
else
{
iUnsignedShortArray[0] = analogRead(analogPinCh1);
iUnsignedShortArray[1] = analogRead(analogPinCh2);
bOutput = true;
for (iIdx = 0; iIdx<iBytesReturned; iIdx++)
{
// Uncomment this line to write to the serial port. Useful
// only for debugging
//Serial.write(cBuff[iIdx]);
BTSerial.write(cBuff[iIdx]);
}
}
}
Error
Arduino: 1.6.5 (Windows XP), Board: "ATtiny, ATtiny85, 8 MHz (internal)"
Using library MinSegBus in folder: C:\Documents and Settings\Administrator\My Documents\Arduino\libraries\MinSegBus (legacy)
Using library SoftwareSerial in folder: C:\Documents and Settings\Administrator\My Documents\Arduino\libraries\SoftwareSerial (legacy)
C:\Program Files\arduino-1.6.5-r5\hardware\tools\avr/bin/avr-g++ -c -g -Os -Wall -Wextra -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=attiny85 -DF_CPU=8000000L -DARDUINO=10605 -DARDUINO_attiny -DARDUINO_ARCH_AVR -IC:\Program Files\arduino-1.6.5-r5\hardware\arduino\avr\cores\arduino -IC:\Documents and Settings\Administrator\My Documents\Arduino\hardware\attiny\avr\variants\tiny8 -IC:\Documents and Settings\Administrator\My Documents\Arduino\libraries\MinSegBus -IC:\Documents and Settings\Administrator\My Documents\Arduino\libraries\SoftwareSerial C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\build61903387065297718.tmp\ArduinoFirmware.cpp -o C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\build61903387065297718.tmp\ArduinoFirmware.cpp.o
In file included from C:\Program Files\arduino-1.6.5-r5\hardware\arduino\avr\cores\arduino/Stream.h:26:0,
from C:\Program Files\arduino-1.6.5-r5\hardware\arduino\avr\cores\arduino/HardwareSerial.h:29,
from C:\Program Files\arduino-1.6.5-r5\hardware\arduino\avr\cores\arduino/Arduino.h:224,
from ArduinoFirmware.ino:11:
C:\Program Files\arduino-1.6.5-r5\hardware\arduino\avr\cores\arduino/Print.h:32:0: warning: "BIN" redefined [enabled by default]
#define BIN 2
^
In file included from c:\program files\arduino-1.6.5-r5\hardware\tools\avr\avr\include\avr\iotn85.h:38:0,
from c:\program files\arduino-1.6.5-r5\hardware\tools\avr\avr\include\avr\io.h:428,
from c:\program files\arduino-1.6.5-r5\hardware\tools\avr\avr\include\avr\pgmspace.h:88,
from C:\Program Files\arduino-1.6.5-r5\hardware\arduino\avr\cores\arduino/Arduino.h:28,
from ArduinoFirmware.ino:11:
c:\program files\arduino-1.6.5-r5\hardware\tools\avr\avr\include\avr\iotnx5.h:55:0: note: this is the location of the previous definition
#define BIN 7
^
ArduinoFirmware.ino: In function 'void setup()':
ArduinoFirmware.ino:73:3: error: 'TIMSK0' was not declared in this scope
Multiple libraries were found for "SoftwareSerial.h"
Used: C:\Documents and Settings\Administrator\My Documents\Arduino\libraries\SoftwareSerial
Not used: C:\Program Files\arduino-1.6.5-r5\hardware\arduino\avr\libraries\SoftwareSerial
'TIMSK0' was not declared in this scope
Let me know whats wrong.
P.S. I checked the attiny 85 datasheet, It has the TIMSK register.
The required library is attached
MinSegBus.zip (5.9 KB)