Witam,
Czy ktoś może mi zmodyfikować tak mój program aby działał mi wyświetlacz LCD ?
Chodzi tutaj o to że mam podłączony mały silnik krokowy oraz potencjometr a do tego jeszcze przyciski "start, stop, zmień kierunek obrotu".
Wszystkie przyciski działają, potencjometr również, a teraz chciałbym aby zakres mojego potencjometru był wyświetlany na LCD w %.
np. przy połowie obrotów silnika(ustawionych na potencjometrze) był wyświetlany napis na LCD "50%"
atmega32 + jtag ice
MOJ KOD
dziękuje
Czy ktoś może mi zmodyfikować tak mój program aby działał mi wyświetlacz LCD ?
Chodzi tutaj o to że mam podłączony mały silnik krokowy oraz potencjometr a do tego jeszcze przyciski "start, stop, zmień kierunek obrotu".
Wszystkie przyciski działają, potencjometr również, a teraz chciałbym aby zakres mojego potencjometru był wyświetlany na LCD w %.
np. przy połowie obrotów silnika(ustawionych na potencjometrze) był wyświetlany napis na LCD "50%"
atmega32 + jtag ice
MOJ KOD
Cytat:#include<avr/io.h>
#include<util/delay.h>
#include <avr/interrupt.h>
#define przyc0 (1<<PA0)
#define przyc1 (1<<PA1)
#define przyc2 (1<<PA2)
#define przyc3 (1<<PA3)
#define przyc4 (1<<PA4)
int i=0;
int START;
uint8_t klaw_wcis(uint8_t klawisz)
{
if(!(PINA & klawisz))
{
_delay_ms(60);
if(!(PINA & klawisz)) return 1;
}
return(0);
}
#define LCD PORTD
#define E 3
#define RS 2
#define SET_E LCD |= _BV(E)
#define CLR_E LCD &= ~_BV(E)
#define SET_RS LCD |= _BV(RS)
#define CLR_RS LCD &= ~_BV(RS)//do wyswietlacza
int main(void)
{
ADCSRA|=((1<<ADEN)|(1<<ADATE)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0));
ADMUX|=(1<<MUX0)|(1<<MUX1)|(1<<MUX2)|(1<<REFS0)|(1<<ADLAR);
ADCSRA^=(1<<ADSC);
TCCR0 |=(1<<WGM00) |(1<<WGM01) |(1<<COM01) |(1<<CS01);
DDRB=0xFF;
DDRA&=~(przyc0|przyc1|przyc2|przyc3|przyc4);
PORTA |=(przyc0|przyc1|przyc2|przyc3|przyc4);
OCR0=70;
lcd_init();
while(1)
{
if(klaw_wcis(przyc0))
{
START=1;
}
if(klaw_wcis(przyc1))
{
TCCR0 ^=(1<<COM00);
PORTB ^=(1<<2);
_delay_ms(600);
}
if(klaw_wcis(przyc2))
{
OCR0=0;
PORTB &=~(1<<2);
START=0;
}
if(START==0)
{
OCR0=0;
write_text("HALO HALO nie dziala ");
write_command(0xC0);
write_text("STOP");
while(1);
}
if(START==1)
{
OCR0=ADCH;
write_command(0x01);
write_text("START");
while(1);
}
}
return 0;
}
dziękuje