Langage C - C - Programmation
Marsh Posté le 03-06-2005 à 09:30:10
audirs61 a écrit : |
segmentation fault - coredump
Marsh Posté le 03-06-2005 à 09:32:48
audirs61 a écrit : |
Va falloir faire un effort quand même
Marsh Posté le 03-06-2005 à 09:49:20
un peu de lecture accessible: http://c.developpez.com/faq/c/
Marsh Posté le 03-06-2005 à 10:01:22
Voici un lien sur un site d'un forumeur, lien très complet pour le C : http://mapage.noos.fr/emdel
Tu peux dire merci à Emmanuel.
Marsh Posté le 03-06-2005 à 10:10:42
c'est le dernier moment pour s'y mettre...
Marsh Posté le 03-06-2005 à 11:02:30
elianor a écrit : segmentation fault - coredump |
LE message qu'on a tous vu apparaitres quelques foi s
Marsh Posté le 03-06-2005 à 12:06:43
audirs61 a écrit : jpasse une epreuve de tp au bac lundi prochain, et il faut connaitre le langage C. |
Mission impossible. Il faut 3 à 6 mois pour maitriser le C.
Marsh Posté le 03-06-2005 à 12:10:52
Emmanuel Delahaye a écrit : Mission impossible. Il faut 3 à 6 mois pour maitriser le C. |
Tiens, c'est marrant, il y a manifestement des profs qui considèrent qu'une vingtaine d'heures suffisent
Marsh Posté le 03-06-2005 à 12:17:31
Emmanuel Delahaye a écrit : Mission impossible. Il faut 3 à 6 mois pour maitriser le C. |
heuh en partant d'environ 0, je dirais bcp plus, ou alors 6 mois avec des doses de cheval. Et encore, faut s'etre pris les pieds dans pas mal de piege a la con du C (d'une part) et du C sur son OS (d'autre part) pour avancer sans trop se bloquer.
Marsh Posté le 03-06-2005 à 12:30:33
Moktar1er a écrit : Tiens, c'est marrant, il y a manifestement des profs qui considèrent qu'une vingtaine d'heures suffisent |
Pour maitriser la syntaxe et connaitre la signification des opérateurs, oui. Mais seule l'expérience apporte la maitrise de l'arithmétique de pointeurs et une façon de programmer raisonnable.
Marsh Posté le 03-06-2005 à 12:47:35
faisant des études d'informatique, faut facilement 6 - 12 mois pour métriser les bases du C correctement! veux dire par la (boucle, alternative, tableau, fichier, allocation dynamique, etc...)
en quelque jour c'est impossible a moins d'avoir une logique implacable et d'avoir fait d'autre language avant c'est impossible ...
Marsh Posté le 03-06-2005 à 13:12:36
C'est ici qu'on apprnds le c en 3 jours?
Marsh Posté le 03-06-2005 à 13:13:57
bah wé on a qu'a commencer:
hop programmation de l'exclusion mutuelle avec les sémaphores
Marsh Posté le 03-06-2005 à 13:18:27
Je comprends la différence entre un tableau de pointeur et un pointeur de tableau ?
Marsh Posté le 03-06-2005 à 13:22:17
boulax a écrit : |
_o/ _o\ \o_
Marsh Posté le 03-06-2005 à 13:44:52
moi chui dans le mm cas mais on demande pas des programmes super evolués hein ! nous on arrive pas mais ya pas grand chose a savoir, char peek poke delay etc... mais nous ce qu'on arrive pas c a écrire les programmes genre on sait pas mettre tel bit a 0 ou a 1 , des truc comme ca
Marsh Posté le 03-06-2005 à 13:47:16
xplor a écrit : peek poke |
CPC 464 en faursse !!!!
Marsh Posté le 03-06-2005 à 13:49:57
ReplyMarsh Posté le 03-06-2005 à 23:00:15
tout d'abord, merci pour vos liens.
je vous montre un bou de programme:
#include std11.h
#define PORTC 0x1003
#define PORTB 0x1004
#define DDRC 0x1007
void CONFIG()
{
poke(DDRC, 0x00) // là est mon problème: je configure le port c en entrées, mais je comprend pas pourquoi on ne met pas poke(PORTC, 0x00).
et si je veux donner la valeur $16 au portc par exemple, je met: poke(PORTC, 0x16)
ou poke(DDRC, 0x16)
et pis le portc est special? le portb pose pas ce genre de problème, je comprend pas
merci d'avance
Marsh Posté le 04-06-2005 à 10:32:51
audirs61 a écrit :
|
Rien de standard ici... Tu parles de quel plateforme ?
(Admettons que ce soit Motorola 68HC11 que je découvre)
<RIEN A VOIR AVEC LE LANGAGE C!>
Le port C est contrôlé par 2 registres:
portc ($1003) : donnée
ddrc ($1007) : direction (1=output)
Si tu programmes les 8 bits du port C en entrée
(ddrc) := 0 |
il n'y a rien à écrire dans portc (Sauf demande expresse exprimée par la doc du composant, ça n'aurait aucun sens). Il suffit maintenant de le lire pour récupérer des informations externes.
data := (portc) |
</>
NOTA : Suis-je le seul à avoir des problèmes de connexion avec les serveurs US depuis cette nuit ? Je suis en France.
Ca y'est, ça remarche... Encore un coup des chinois du FBI...
Marsh Posté le 04-06-2005 à 14:35:32
Bizarre, nous on doit simplement connaître le basic et comprendre quelques instructions d'assembleur pour le bac ( pour le 68HC11)
j'ai fait ca en C mais je suis pas sûr que ce soit juste. C'était pour faire bouger une parabole.
Code :
|
Marsh Posté le 04-06-2005 à 19:48:21
c bizar, c tres different de ce que nous avons appris. jsuis incapable de te dire si c'est juste.
Marsh Posté le 04-06-2005 à 19:55:36
boulax a écrit : bah wé on a qu'a commencer: |
Trop simple ... un ptit coup de P(mutex) par ci et un ptit coup de V(mutex) par la.
Marsh Posté le 04-06-2005 à 20:02:27
Attention tout de même !
Les mutex (pthread_mutex_lock, unlock) ne fonctionnent pas par défaut commes les primitives P et V de Dijsktra.
Les mutex peuvent être dans l'état bloqué ou non. P et V agissent sur un sémaphore en incrémentant ou décrémentant sa valeur.
Marsh Posté le 04-06-2005 à 20:10:54
fafounet a écrit : Attention tout de même ! |
Je pense tout de meme qu'on peut utiliser les mutex des IPC System V avec des pthread ... et donc faire des vrais P et V dans des fonction threadés.
Marsh Posté le 05-06-2005 à 09:39:02
Pour faire des vrais P et V c'est les semaphores (effecitvement des systèmes IPC sys V) -> man semaphore.h
Marsh Posté le 06-06-2005 à 10:42:34
audirs61 a écrit : c bizar, c tres different de ce que nous avons appris. jsuis incapable de te dire si c'est juste. |
la fonction asm "CLI" sert juste pour l'émulateur.
ensuite on fait un "ou logique" de %00110000(0x30) avec DDRA qu'on enregistre dans DDRA pour mettre uniquement les bits 5 et 6 à "1", et on laisse les autres. C'est pour configurer les ports du DDR en sorties.
ensuite on met %00100000 (0x20) dans PORTA pour faire tourner la parabole vers l'est (bit 5 à "0" et bit 6 à "1" )
grâce à la boucle for on attend 3 secondes
ensuite on arrête la parabole (PORTA = 0x30)(bits 5 et 6 à "1" )
on la fait tourner vers l'Ouest(bit 5 à "1" et bit 6 à "0" )
et on l'arrête
et on recommence ca à l'infini jusqu'à l'arrêt du système
Marsh Posté le 03-06-2005 à 08:53:47
bijour a tous
jpasse une epreuve de tp au bac lundi prochain, et il faut connaitre le langage C.
apres avoir fait des recherches, et relu mon cours moulte fois, je n'y comprend toujours rien.
ca serait possible que vous m expliquiez de maniere tres simple les bases du langage C?
merci bin d avance
Message édité par audirs61 le 03-06-2005 à 08:55:18