http://www.technoblogy.com/show?1NGL
Вроде все совместимо, кроме функций "pinMode(1, OUTPUT);" и "analogRead(A1);"(совместимо имеется ввиду, компилятор AS7.0 не ругается).
Что сделал для функции pinMode:
Функцию analogRead просто удалил.DDRB |= _BV(PB1);
В чем суть проблемы:
Не работает DAC на attiny85 скомпилированный на Atmel Studio 7.0 в принципе (и эмуляции в Proteus) - он не дергает ногу PB1 при любом значении analogWrite10(value);.
На Attiny85 установлены фьюзы 8МГц внутр. без делителя.
Вот мой код:
Код: Выделить всё
/*
* test_dac10bit.c
*
* Created: 25.01.2020 17:39:05
* Author : Dima
*/
#include <avr/io.h>
#include <avr/interrupt.h>
// One 10-bit analogue output from an ATtiny85 ************************************
volatile int Dac = 0;
volatile int Cycle = 0;
// Overflow interrupt
ISR (TIMER1_OVF_vect) {
static int remain;
if (Cycle == 0) remain = Dac;
if (remain >= 256) { OCR1A = 255; remain = remain - 256; }
else { OCR1A = remain; remain = 0; }
Cycle = (Cycle + 1) & 0x03;
}
void analogWrite10 (int value) {
cli(); Dac = value; sei();
}
int main(void)
{
// Timer/Counter1 doing PWM on OC1A (PB1)
TCCR1 = 1<<PWM1A | 1<<COM1A0 | 1<<CS10;
TIMSK |= _BV(TOIE1);
DDRB |= _BV(PB1);
/* Replace with your application code */
while (1)
{
analogWrite10(511);
}
}


