čaute borci :) potreboval bych poradit kde robím chybu prosim, C sem sa učil prevažne na PC takže netuším co všetko si možem dovolit pri programovaci pre AVR da to niekde naist? plus kde robím chybu v tomto programe?
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include <stdio.h>
#include <string.h>
#include <inttypes.h>
#include "find.h"
unsigned char zisti(char *str)
{
unsigned char stav;
if(('A' == str[0]) & ('A' == str[1]))stav = 1;
if(('A' == str[0]) & ('B' == str[1]))stav = 2;
if(('B' == str[0]) & ('A' == str[1]))stav = 3;
if(('B' == str[0]) & ('B' == str[1]))stav = 4;
return stav;
}
int8_t strida(char *str)
{
int8_t a = 0, b = 0, c = 0, d = 0;
if('1' == str[2])a = 100;
if('2' == str[2])a = 200;
else a = 0;
//if('3' == str[2])a = 300;
//if('4' == str[2])a = 400;
//if('5' == str[2])a = 500;
//if('6' == str[2])a = 600;
//if('7' == str[2])a = 700;
//if('8' == str[2])a = 800;
//if('9' == str[2])a = 900;
if('1' == str[3])b = 10;
if('2' == str[3])b = 20;
if('3' == str[3])b = 30;
if('4' == str[3])b = 40;
if('5' == str[3])b = 50;
if('6' == str[3])b = 60;
if('7' == str[3])b = 70;
if('8' == str[3])b = 80;
if('9' == str[3])b = 90;
if('0' == str[3])b = 0;
if('0' == str[4])c = 0;
if('1' == str[4])c = 1;
if('2' == str[4])c = 2;
if('3' == str[4])c = 3;
if('4' == str[4])c = 4;
if('5' == str[4])c = 5;
if('6' == str[4])c = 6;
if('7' == str[4])c = 7;
if('8' == str[4])c = 8;
if('9' == str[4])c = 9;
d = a + b + c;
if(d > 255)d = 0;
return d;
}
Ty zakomentovane časti mi piše že preteka kedže vim že uint8_t ma max 255 ... takže bych mal použit uint16_t ??aj ked použivat procesot atmega8? osmibitovy? potrebujem pri poslani stringu znaku uloženych do pola :
potrebujem rozoznač či je zadane AA,AB,BA,BB ... a čislo od 0-255 . Dekuju