#1 Becal
Zdravím, řešim problém s "e-bayovským" programátorem USBASP v2.0 ve spolupráci s Khazamou. Před nahráváním programu mi začlo vyskakovat následující http://www.nahraj-obrazek.cz/?di=013929291938 chybové okno:
Error while operating...
Error Setting USBASP ISP Clock...
Snažím se neúspěšně rozběhnout jednoduchý program pro měření napětí (tedy ADC) a jelikož nejsem v psaní zatím tolik zběhlý nevím, jestli je chyba v kódu, nebo je způsobována tím programátorem. Pro jistotu přidám kód, myslím si, že by měl fungovat, možná taky ne:
/*-----Hlavičky, globalni promenne, konstanty-----------------------------------------------------------------------------------------------*/
#define F_CPU 8000000
#include <avr/io.h>
#include <stdio.h>
#include <stdlib.h>
#include <util/delay.h>
#include <string.h>
#include <avr/interrupt.h>
#include "lcd.h"
volatile float adc;
char text[32];
double u;
ISR(ADC_vect){
adc = ADC; // zapis vysledku prevodu do promenne adc
}
ISR(TIMER0_OVF_vect)
{
char text[32];
double u;
TCNT0 = 156;
/*Vypocet napeti a vypis na displej*/
u = (adc*5*3.167/1024);
lcd_gotoxy(0,0);
sprintf(text,"Napeti: %.2f [V]",u);
lcd_puts(text);
}
/*-----Hlavni program-------------------------------------------------------------------------------------------------------------------*/
int main(void){
/*Deklarace promennych a registru preruseni*/
TCCR0 = 0b00000100;
TCNT0 = 156;
TIMSK |= 0b00000001;
/*Nastaveni externi reference 5V AVcc na Aref*/
ADMUX |= (1 << REFS0);
/*ADEN zapnuti ADC
ADSC start prevodu
ADFR opakovaci rezim
ADIE povoleni preruseni
ADPS2-0 nastaveni preddelicky 128, frekvence hodin 8Mhz*/
ADCSRA |= (1 << ADEN) | (1 << ADSC) | (1 << ADFR) | (1 << ADIE) | (1 <<ADPS2) | (1 <<ADPS1) | (1 <<ADPS0);
/*Zapnuti displaye*/
lcd_init(LCD_DISP_ON);
/*Povoleni globalniho preruseni*/
sei();
/*Nekonecna smycka*/
while(1);
};
díky za případné rady!