Mam XP sp2 i plik c którego nie mogę skompilować w studio4 ver4.14.589 w kompilatorze GCC brakuje chyba biblioteki co jest nie tak ...
Czy da się skompilować ten kod obojętnie jakim kompilatorem ?.
Proszę o pomoc.
takie błędy wywala :
Co do pierwszego pytania to chodzi oto że przypadkowo załadowałem kod do atmega16 zabezpieczonej nie kasując tego który już tam był i procek działa na drugim kodzie ale chodzi mi oto czy można wyciągnąć (odczytać ) ten pierwszy kod . Jak ustawie fusebity tak :
to odczytuje pierwszy kod ale z błędami tak jak przy zablokowanym procku. Zależy mi żeby odzyskać pierwszy kod
Czy da się skompilować ten kod obojętnie jakim kompilatorem ?.
Proszę o pomoc.
#include <avr/io.h>
#define F_CPU 4000000UL
#include <util/delay.h>
#define Rs0 PORTA &= ~0x20;
#define Rs1 PORTA |= 0x20;
#define Rw0 PORTA &= ~0x40;
#define Rw1 PORTA |= 0x40;
#define E0 PORTA &= ~0x80;
#define E1 PORTA |= 0x80;
void Nout(unsigned char _d)
{
E1;
if(_d & 0x01) PORTC |= 0x10 ; else PORTC &= ~0x10;
if(_d & 0x02) PORTC |= 0x20 ; else PORTC &= ~0x20;
if(_d & 0x04) PORTC |= 0x40 ; else PORTC &= ~0x40;
if(_d & 0x08) PORTC |= 0x80 ; else PORTC &= ~0x80;
E0;
_delay_us(100);
}
void Dout(unsigned char _d)
{
E1;
if(_d & 0x10) PORTC |= 0x10 ; else PORTC &= ~0x10;
if(_d & 0x20) PORTC |= 0x20 ; else PORTC &= ~0x20;
if(_d & 0x40) PORTC |= 0x40 ; else PORTC &= ~0x40;
if(_d & 0x80) PORTC |= 0x80 ; else PORTC &= ~0x80;
E0; _delay_us(100); E1;
if(_d & 0x01) PORTC |= 0x10 ; else PORTC &= ~0x10;
if(_d & 0x02) PORTC |= 0x20 ; else PORTC &= ~0x20;
if(_d & 0x04) PORTC |= 0x40 ; else PORTC &= ~0x40;
if(_d & 0x08) PORTC |= 0x80 ; else PORTC &= ~0x80;
E0; _delay_us(100);
}
void Hd44780init(void)
{
Rs0 ; Rw0 ; E0 ; _delay_ms(100);
Nout(0x02);
Dout(0x28);
Dout(0x0c);
Dout(0x06);
Dout(0x01);
Dout(0x02);
_delay_ms(100);
Dout(0x86);
Rs1;
Dout( 'K');
Dout( 'O');
Dout( 'N');
Dout( 'I');
Dout( 'E');
Dout( 'C');
Dout( ' ');
Dout( 'D');
Dout( 'A');
Dout( 'R');
Dout( 'M');
Dout( 'O');
Dout( 'W');
Dout( 'Y');
Dout( 'C');
Dout( 'H');
Rs0 ; Dout(0xc0) ; Rs1;
Dout( 'K');
Dout( 'O');
Dout( 'D');
Dout( 'O');
Dout( 'W');
Dout( '!');
Dout( '!');
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
Rs0 ; Dout(0xc0) ; Rs1;
Dout( ' ');
Dout( ' ');
Dout( ' ');
Dout( ' ');
Dout( ' ');
Dout( ' ');
Dout( ' ');
Dout( ' ');
Dout( ' ');
Dout( '!');
Dout( '!');
Dout( 'W');
Dout( 'O');
Dout( 'D');
Dout( 'O');
Dout( 'K');
Rs0 ; Dout(0x80) ; Rs1;
Dout( 'H');
Dout( 'C');
Dout( 'Y');
Dout( 'W');
Dout( 'O');
Dout( 'M');
Dout( 'R');
Dout( 'A');
Dout( 'D');
Dout( ' ');
Dout( 'C');
Dout( 'E');
Dout( 'I');
Dout( 'N');
Dout( 'O');
Dout( 'K');
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
}
int main(void)
{
PORTA = 0x10;
DDRA = 0xf0;
PORTB = 0x00;
DDRB = 0x00;
PORTC = 0x00;
DDRC = 0xff;
PORTD = 0x00;
DDRD = 0x00;
TCCR0 = 0x00;
TCNT0 = 0x00;
OCR0 = 0x00;
TCCR1A = 0x00;
TCCR1B = 0x00;
TCNT1H = 0x00;
TCNT1L = 0x00;
ICR1H = 0x00;
ICR1L = 0x00;
OCR1AH = 0x00;
OCR1AL = 0x00;
OCR1BH = 0x00;
OCR1BL = 0x00;
ASSR = 0x00;
TCCR2 = 0x00;
TCNT2 = 0x00;
OCR2 = 0x00;
MCUCR = 0x00;
MCUCSR = 0x00;
TIMSK = 0x00;
ACSR = 0x80;
SFIOR = 0x00;
Hd44780init();
while(1)
{
PORTA ^= 0x10;
_delay_ms(500);
Rs1;
Dout( 'K');
Dout( 'O');
Dout( 'N');
Dout( 'I');
Dout( 'E');
Dout( 'C');
Dout( ' ');
Dout( 'D');
Dout( 'A');
Dout( 'R');
Dout( 'M');
Dout( 'O');
Dout( 'W');
Dout( 'Y');
Dout( 'C');
Dout( 'H');
Rs0 ; Dout(0xc0) ; Rs1;
Dout( 'K');
Dout( 'O');
Dout( 'D');
Dout( 'O');
Dout( 'W');
Dout( '!');
Dout( '!');
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
Rs0 ; Dout(0xc0) ; Rs1;
Dout( ' ');
Dout( ' ');
Dout( ' ');
Dout( ' ');
Dout( ' ');
Dout( ' ');
Dout( ' ');
Dout( ' ');
Dout( ' ');
Dout( '!');
Dout( '!');
Dout( 'W');
Dout( 'O');
Dout( 'D');
Dout( 'O');
Dout( 'K');
Rs0 ; Dout(0x80) ; Rs1;
Dout( 'H');
Dout( 'C');
Dout( 'Y');
Dout( 'W');
Dout( 'O');
Dout( 'M');
Dout( 'R');
Dout( 'A');
Dout( 'D');
Dout( ' ');
Dout( 'C');
Dout( 'E');
Dout( 'I');
Dout( 'N');
Dout( 'O');
Dout( 'K');
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
};
}
takie błędy wywala :
Co do pierwszego pytania to chodzi oto że przypadkowo załadowałem kod do atmega16 zabezpieczonej nie kasując tego który już tam był i procek działa na drugim kodzie ale chodzi mi oto czy można wyciągnąć (odczytać ) ten pierwszy kod . Jak ustawie fusebity tak :
to odczytuje pierwszy kod ale z błędami tak jak przy zablokowanym procku. Zależy mi żeby odzyskać pierwszy kod
