Non, 10.
Non, 10.
Le Fri, 3 Apr 2020 10:03:21 +0200,
Bonjour,
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
OK !
Etrange ...
plus ...
serial_send_byte(4)
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
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
Ok je vais lire ton code plus attentivement.
Parfait donc. Comme je n'ai pas lu le reste il se pouvait que tu
HLe Fri, 3 Apr 2020 10:20:40 +0200,
condition while(!(UCSR0A & (1
Dans serial.c
void serial_send_byte(uint8_t byte) { while(!(UCSR0A & (1
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
dans le registre UCSR0A.
Une recherche google sur "while(!(UCSR0A & (1
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
Le Fri, 3 Apr 2020 17:51:57 +0200,
datasheet.
Jamais eu non plus le genre de pbs que tu as ... j'utilise printf(), scanf() ... de depuis des lustres.
Bon courage, H
Par contre, je ne comprends toujours pas ce qui peut expliquer que ton for commence par 4 ...
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
Ok, merci pour l'explication !
H
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.