smac писал(а):Kots писал(а):Делаю AVR910, но неоказалось резисторов на 100ом. Есть на 111, такой подойдёт?
Число 111 - это Вы на корпусе SMD резистора прочитали? Если да, то это не 111 Ом, а 110. В любом случае, и 110 и 111 Ом подойдет.

smac писал(а):Kots писал(а):Делаю AVR910, но неоказалось резисторов на 100ом. Есть на 111, такой подойдёт?
Число 111 - это Вы на корпусе SMD резистора прочитали? Если да, то это не 111 Ом, а 110. В любом случае, и 110 и 111 Ом подойдет.

Код: Выделить всё
.equ a={любое число}
.equ b={любое число}
.def main1=R13
.def main2=R14
.def temp1=R15
.def temp2=R16
.def temp3=R17
.def temp4=R18
{регитсры R15:R16 - будут служить для записи числа а,
регитсры R17:R18 - b}
ldi main1, a
ldi temp1, low(main1)
ldi temp2, high(main1)
ldi main2, a
ldi temp3, low(main2)
ldi temp4, high(main2)
add temp1, temp3
adc temp2, temp4
{Результат записывается в регистр temp1:temp2}den1988 писал(а):...
В итоге у меня куча эррорс. Что не так
den1988 писал(а):Код: Выделить всё
.equ a={любое число}
.equ b={любое число}
.def main1=R13
.def main2=R14
.def temp1=R15
.def temp2=R16
.def temp3=R17
.def temp4=R18
ldi temp1, low(main1)
ldi temp2, high(main1)
ldi temp3, low(main2)
ldi temp4, high(main2)
Код: Выделить всё
#include <avr/io.h>
#include <stdio.h>
#include <stdlib.h>
#define F_CPU 8000000UL // 8 MHz
#define BAUD_RATE 9600
void adcinit();
int getadc(uint8_t channel);
int uart_putchar (char c)
{
if (c == '\n')
uart_putchar('\r');
loop_until_bit_is_set(UCSRA, UDRE);
UDR = c;
return (0);
}
void UART_Init (void) {
//Enable TXEN im Register UCR TX-Data Enable
UCSRB=(1 << TXEN);
UBRRL=(F_CPU / (BAUD_RATE * 16L) - 1);
fdevopen (uart_putchar, NULL);
}
int main (void)
{
adcinit();
UART_Init();
DDRC = 0b00000000;
DDRB = 0b00000000;
PORTB = 0b00000000;
DDRD = 0b11100000; // 1=Output, 0=Input
PORTD = 0b11100000; //on
// пишем в терминал
printf("ok\n");
while (1==1) {
val=getadc(0);
// тут еще делается работа с переменными - убрал чтоб не мешалась
// ибо прога пашет супер, только глючит вывод на терминал
// ну и выводим в терминал
printf("%d %d %d \n",pwm,pwm_ctr,val);
}
}
void adcinit() {
// Activate ADC with Prescaler 16 --> 1Mhz/16 = 62.5kHz
//ADCSRA = _BV(ADEN) | _BV(ADPS2);
ADCSRA = _BV(ADEN) | _BV(ADPS2) | _BV(ADPS1);
ADMUX= 0;
}
int getadc(uint8_t channel) {
// Select pin ADC0 using MUX
ADMUX = channel | _BV(REFS0) | _BV(REFS1);
//Start conversion
ADCSRA |= _BV(ADSC);
// wait until converstion completed
while (ADCSRA & _BV(ADSC) ) {}
// get converted value
return(ADCW);
}Код: Выделить всё
.include "D:\vmlab\include\m8def.inc"