avr-gcc et programme qui ne fait pas ce qu'il est censé faire...

Loading thread data ...

Le Fri, 3 Apr 2020 10:03:21 +0200,

Bonjour,

  1. Pourquoi voudrais-tu qu'elle vaille 11 ?

C'est une variable statique, elle n'est pas sur le tas mais dans la

JKB

--


=> http://grincheux.de-charybde-en-scylla.fr 
=> http://loubardes.de-charybde-en-scylla.fr
Reply to
JKB

OK !

Etrange ...

plus ...

serial_send_byte(4)

Reply to
Loïc G.

Le Fri, 3 Apr 2020 10:31:17 +0200,

Tu confonds deux choses :

i_max vaut 10.

JKB

--


=> http://grincheux.de-charybde-en-scylla.fr 
=> http://loubardes.de-charybde-en-scylla.fr
Reply to
JKB

Le Fri, 3 Apr 2020 11:04:11 +0200,

Par ailleurs, ce tableau n'est ni sur le tas ni sur la pile, mais

variable suivante. En aucun cas corrompre le tas ou la pile

mailing liste avr-gcc, mais je n'en attends pas grand'chose.

JKB

--


=> http://grincheux.de-charybde-en-scylla.fr 
=> http://loubardes.de-charybde-en-scylla.fr
Reply to
JKB

Ok je vais lire ton code plus attentivement.

Parfait donc. Comme je n'ai pas lu le reste il se pouvait que tu

H
Reply to
bilboard

Le Fri, 3 Apr 2020 10:20:40 +0200,

condition while(!(UCSR0A & (1

formatting link
=>
formatting link

Reply to
JKB

Dans serial.c

void serial_send_byte(uint8_t byte) { while(!(UCSR0A & (1

Reply to
bilboard

Le Fri, 3 Apr 2020 15:49:45 +0200,

mais UDRE0 parce qu'il y a pluiseurs USART. Le bout de code que j'utilise provcient du datasheet du processeur.

Il est dans le code.

Bien cordialement,

JKB

--


=> http://grincheux.de-charybde-en-scylla.fr 
=> http://loubardes.de-charybde-en-scylla.fr
Reply to
JKB

dans le registre UCSR0A.

Une recherche google sur "while(!(UCSR0A & (1

Reply to
Loïc G.
30 de programmation en C et je viens encore de me faire attraper par

La solution est donc :

typedef volatile struct { volatile uint8_t *port; volatile uint8_t *pin; volatile uint8_t bitNo; volatile int8_t timer; } gpio_t;

volatile uint8_t interrupt_counter;

enum { i_work = 0, i_wait, i_meas_in_progress, i_meas_ready, i_send_data, i_watchdog_reset, i_comm_rx, i_comm_tx, i_comm_ok, i_irq, i_max};

#ifdef __MAIN__ volatile gpio_t i_led[i_max] = { { &PORTD, &PIND, 3, 0 }, { &PORTD, &PIND, 4, 0 }, { &PORTD, &PIND, 5, 0 }, { &PORTD, &PIND, 6, 0 }, { &PORTD, &PIND, 7, 0 }, { &PORTB, &PINB, 0, 0 }, { &PORTB, &PINB, 1, 0 }, { &PORTB, &PINB, 2, 0 }, { &PORTB, &PINB, 3, 0 }, { &PORTB, &PINB, 4, 0 } }; #else extern volatile gpio_t i_led[i_max]; #endif

Avec un #define __MAIN__ dans le main.c avant l'inclusion du fichier

JKB

--


=> http://grincheux.de-charybde-en-scylla.fr 
=> http://loubardes.de-charybde-en-scylla.fr
Reply to
JKB

datasheet.

Jamais eu non plus le genre de pbs que tu as ... j'utilise printf(), scanf() ... de depuis des lustres.

Bon courage, H

Reply to
bilboard

Par contre, je ne comprends toujours pas ce qui peut expliquer que ton for commence par 4 ...

Reply to
Loïc G.

Le Fri, 3 Apr 2020 18:04:30 +0200,

ne me convainc pas).

attente (et comme c'est une machine Unix, on va dire que la file est assez longue pour pouvoir encaisser 10 octets arrivant en paquets).

valeurs en sortie (mais de temps en temps une valeur saute tout de

Bref, ce n'est pas net, mais comme je n'ai pas besoin d'utiliser l'USART

que j'ai assez de temps pour chercher le pourquoi du comment.

depuis une routine d'interruption, il faut passer par un buffer et

JKB

--


=> http://grincheux.de-charybde-en-scylla.fr 
=> http://loubardes.de-charybde-en-scylla.fr
Reply to
JKB

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.