Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Problem z programami w C

Awatar użytkownika
piterino_16
-
-
Posty:400
Rejestracja:26 paź 2005, o 21:20
Lokalizacja:Inowrocław
Kontaktowanie:
Problem z programami w C

Postautor: piterino_16 » 15 kwie 2008, o 15:05

Witam mam problem z programami. Muszę opisać je w sprawozdaniu na mikroprocesory, ale nie działają tak jak powinny. Prośba moja jest taka, aby ktoś bardziej obeznany w temacie spojrzał na nie i powiedział mi gdzie są błędy. Proszę o pomoc. Poniżej zamieszczam oba programy.

Kod: Zaznacz cały

#include <REG52.H> #include <stdio.h> void main (void) { int a=0, P0=0; while (a<10); while (1) { P0++ ; a++; } }

Kod: Zaznacz cały

#include <REG52.H> #include <stdio.h> int oblicz (int a, int b) { return a + b } void main (void) while (1) { P3 = oblicz (P1, P2); }

radzio
Moderator
Moderator
Posty:967
Rejestracja:13 maja 2003, o 10:33
Lokalizacja:Sosnowiec
Kontaktowanie:

Postautor: radzio » 15 kwie 2008, o 15:16

Kod: Zaznacz cały

#include <REG52.H> #include <stdio.h> void main (void) { int a=0, P0=0; while (a<10); // << tutaj zrobiłes pętle nieskończoną, progrma tu sie zatrzyma, tą linię usuń while (1) { P0++ ; a++; if(a>=10) break; // << chyba to chciałeś uzyskać } }

Kod: Zaznacz cały

#include <REG52.H> #include <stdio.h> int oblicz (int a, int b) { return a + b } void main (void) { // << tutaj powinien być nawias klamrowry otwierający while (1) { P3 = oblicz (P1, P2); } } // << a tutaj zamykający
Pozatym nie napisałeś "jak powinny" działać te programy.

Awatar użytkownika
piterino_16
-
-
Posty:400
Rejestracja:26 paź 2005, o 21:20
Lokalizacja:Inowrocław
Kontaktowanie:

Postautor: piterino_16 » 15 kwie 2008, o 21:21

właśnie tak do końca nie wiem jak powinny działać. Nie byłem na zajęciach kiedy pisali te programy i przepisałem notatki kumpla. Dzięki za poprawienie błędów. A czy jakieś komentarze do poszczególnych komend mógłbyś napisać?? Chociaż tak skrótowo żebym wiedział co do czego i jak działa.

radzio
Moderator
Moderator
Posty:967
Rejestracja:13 maja 2003, o 10:33
Lokalizacja:Sosnowiec
Kontaktowanie:

Postautor: radzio » 15 kwie 2008, o 21:31

Kod: Zaznacz cały

#include <REG52.H> // dołączenie pliku nagłówkowego z definicjami rejestrów mikrokontrolera 8052 #include <stdio.h> // dołaczenie biblioteki stdio (w tym programie nie jest wykorzystywana) // funkcja main void main (void) { int a=0, P0=0; // deklaracja i incjalizacja zmiennych /* deklaracja co najmniej przerośnięta. Skoro a ma być z zakresu <0..10) to typ char w zupełności wystarczy, szkoda pamięci na typ int. Pozatym P0 również będzie typu int co zapewne kłóci się z typem portu P0 zdefiniowanym w pliku reg52.h. Ja bym pozostawił tylko deklaracje zmiennej a. */ while (1) // wykonuj zawsze { P0++ ; // inkrementacja wartości P0 a++; // inkrementacja wartości zmiennej a if(a>=10) break; // jeśli a>=10 to opuść pętlę } }

Kod: Zaznacz cały

#include <REG52.H> // jak wyżej #include <stdio.h> // jak wyżej /* funkcja obliczająca sumę a i b */ int oblicz (int a, int b) { return a + b // zwróć wynik } /* funkcja główna */ void main (void) { while (1) // wykonuj zawsze P3 = oblicz (P1, P2); // do P3 zapisz sumę P2 }

Awatar użytkownika
piterino_16
-
-
Posty:400
Rejestracja:26 paź 2005, o 21:20
Lokalizacja:Inowrocław
Kontaktowanie:

Postautor: piterino_16 » 16 kwie 2008, o 21:56

Wielkie dzięki Radzio. Biorę sieza pisanie sprawozdania. A co do komendy char. Nic w notatkach nie było tak więc raczej z takiej komendy nie korzystali, a mogli jej nawet nie poznać. Jeszcze raz dzięki. :610:

Awatar użytkownika
pajaczek
Moderator
Moderator
Posty:2653
Rejestracja:24 sty 2005, o 00:39
Lokalizacja:Winny gród

Postautor: pajaczek » 17 kwie 2008, o 11:17

Rzeklbym ze napewno nie poznali "komendy" char... bo char to nie komenda tylko predefiniowany (dostarczony przez podstawy jezyka) typ zmiennej, tak jak int.

Swoja droga dziwne jesli ktos nie wspomnial, bo ten akurat typ to podstawa podstaw... znacznie wazniejszy i czesciej spotykany niz wszelkie floaty, wordy itp w koncu jak zapisac pojedynczy znak jesli nie w char, jak zapisac string jesli nie w tablicy char'ow ?? :619:

Wróć do „Projektowanie PCB, programy EDA, CAD, narzędziowe”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 48 gości