errors with identifier redefined

General discussion on mikroC.
Post Reply
Author
Message
kroksy
Posts: 2
Joined: 14 Feb 2015 16:29

errors with identifier redefined

#1 Post by kroksy » 16 Feb 2015 00:25

hello!

I am working on a matrice keypad programme. I am using MikroC compiler for PIC to write the code in. The code is basicly very similar to other matrice keypad codes, but i have problems with one of my variables called "spremenljivka". I would love to see someone help me with this, and if there is any other problem, since when i build the programme, it also sais internal eroor. I've been struggeling with this problem for some time now and am really confused, since i know that this problem occurres when 2 variables are defined differently, or when the variable is already used in C's liberary. Here is the code:



void port_ini(){
Keypad_Init(&PORTD);
}




unsigned short i, kp,cnt;
unsigned short spremenljivka[1], spremenljivka[2], spremenljivka[3], spremenljivka[4];
unsigned short code1;

void testirajtipke(){
do {
kp = 0;

//--- Wait for key to be pressed
do
//--- un-comment one of the keypad reading functions
kp = Keypad_Released();
//kp = Keypad_Read();
while (!kp);


switch (kp)
{
case 1: kp = '1'; break; // 1
case 2: kp = '2'; break; // 2
case 3: kp = '3'; break; // 3
case 5: kp = '4'; break; // 4
case 6: kp = '5'; break; // 5
case 7: kp = '6'; break; // 6
case 9: kp = '7'; break; // 7
case 10: kp = '8'; break; // 8
case 11: kp = '9'; break; // 9
case 13: kp = 42; break; // *
case 14: kp = 48; break; // 0
case 15: kp = 35; break; // #
}
code1 = kp;
Lcd_Init(&PORTB);
Lcd_Chr(2, i+1, code1); // Print key ASCII value on Lcd
i++;
}while (1);
}
void branje(){
Delay_ms(20);
spremenljivka[1] = EEPROM_Read(0x00); // beri podatke iz naslova 0
Delay_ms(20);
spremenljivka[2] = EEPROM_Read(0x01); // beri podatke iz naslova 1
Delay_ms(20);
spremenljivka[3] = EEPROM_Read(0x02); // beri podatke iz naslova 2
Delay_ms(20);
spremenljivka[4] = EEPROM_Read(0x03); // beri podatke iz naslova 3
Delay_ms(20);


}
void pisanje() {

{
Delay_ms(20);
EEPROM_Write(0x00,code1[0]); // piši podatke na naslov 00
Delay_ms(20);
EEPROM_Write(0x01,code1[1]); // piši podatke na naslov 01
Delay_ms(20);
EEPROM_Write(0x02,code1[2]); // piši podatke na naslov 02
Delay_ms(20);
EEPROM_Write(0x03,code1[3]); // piši podatke na naslov 03
}
}
void spremeni()
{
Lcd_Cmd(_LCD_CLEAR); // ponastavi LCD
Lcd_Out(1, 1, "vnseite novo kodo");

i=0;
testirajtipke();
testirajtipke();
testirajtipke();
testirajtipke();
pisanje();
branje();
}

void main ()
{
port_ini();
TRISC=0x00
ADCON1 |= 0x07;
Lcd_Init() ;

//osnovna koda je 1234, če v EEPROMU še ni shranjene kode
if(spremenljivka[1] == 0xFF && spremenljivka[2] == 0xFF && spremenljivka[3] == 0xFF && spremenljivka[4] == 0xFF )
{
EEPROM_Write(0x00,'1'); // Piši podatke na naslov 00
Delay_ms(20);
EEPROM_Write(0x01,'2'); // Piši podatke na naslov 01
Delay_ms(20);
EEPROM_Write(0x02,'3'); // Piši podatke na naslov 02
Delay_ms(20);
EEPROM_Write(0x03,'4'); // Piši podatke na naslov 03
}
branje();
Lcd_Cmd(_LCD_CLEAR);
Lcd_Cmd(_LCD_CURSOR_OFF);
Lcd_Out(1, 1, "Preverjam..." );
Delay_ms(500);
Lcd_Cmd(_LCD_CLEAR);
cnt=0;
do
{
Lcd_Cmd(_LCD_CLEAR);
Lcd_Out(2, 3, "Pritisnite *");
i = 0;
testirajtipke();
if(code1[0] == 42) // po pritisku na * lahko začnemo vnašati geslo
{
Lcd_Cmd(_LCD_CLEAR); // Clear display
Lcd_Out(1, 1,"Vnesite geslo");
delay_ms(500);
i = 0;
testirajtipke();
testirajtipke();
testirajtipke();
testirajtipke();


if(code1[0] == '1' && code1[1] == '2' && code1[2] == '3' && code1[3] == '4' ) //check master code
{
testirajtipke();
if(code1[5] == 35) // če po vnesenemu geslu kliknemo še # se izvede pšrogram za ponastavitev gesla
{
spremenikodo();
}
}
if(cnt<3 && code1[0] == spremenljivka[1] && code1[1] == spremenljivka[2] && code1[2] == spremenljivka[3] && code1[3] == spremenljivka[4] && code1[4] == 35) //primerjanje s kodo v EEMPROM-u
{
Lcd_Cmd(_LCD_CLEAR); // Clear display
Lcd_Out(1, 1, "VSTOP ODOBREN" );
PORTC.F1 =0;
Delay_ms(1000);
PORTC.F1 =1;

}
else
{
cnt++;
Lcd_Cmd(_LCD_CLEAR);
Lcd_Out(1, 1, "VSTOP ZAVRNJEN" );
}
if(cnt>=3) // če LCD izpiše vstop zavrnjen 3-krat ali več, se vklopi alarm
{
do
{
PORTC.F2=1;
}while(1);
}
}
}while(1);
}

kroksy
Posts: 2
Joined: 14 Feb 2015 16:29

Re: errors with identifier redefined

#2 Post by kroksy » 17 Feb 2015 17:35

i fixed the problems, no need for help xD

Post Reply

Return to “mikroC General”