Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Forum général sur l'Assembleur !

Modérateur : mazertoc

Lecture d'un son avec Pic
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#31 Message par satinas » lun. 19 sept. 2022 13:05

En cantonnant le programme de test dans la zone ROM 0-3ff, on peut écrire de 0x400 jusqu'à la fin de la flash.

Lecture d'un son avec Pic
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2597
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#32 Message par paulfjujo » lun. 19 sept. 2022 15:30

en ouvrant un autre projet et reduisant mon code au minimum et utilisant tes fonctions Flash ...
aucun autre fichier c ou h, pas de MCC ...!
code 16699 bytes .. adresse flash de depart à 4200h ecriture bloc et fichier wav de 106K

ecriture Bloc de 128 Bytes 00381 @ Flash 65024
ecriture Bloc de 128 Bytes 00382 @ Flash 65152
ecriture Bloc de 128 Bytes 00383 @ Flash 65280
ecriture Bloc de 128 Bytes 00384 @ Flash 65408 +128=65536 !

:sad: :mur: LE PROGRAMME FAIT UN RESET !

RAZ buffer UART


Projet MPLABX :18F27K42_Test_Ecr_Lec_Flash_2022-09.X
Version : 2022-0919
Compile le Sep 19 2022 a 14:18:16 UTC
avec version XC8 : 2360

Taille Data (at offset 40) = Taille Data = 106235 bytes
Max Blocs de 128 bytes = 829


je vais refaire le (dernier !) meme test avec MikroC ! et tes fonctions flash
Aide toi, le ciel ou FantasPic t'aidera

Lecture d'un son avec Pic
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#33 Message par satinas » lun. 19 sept. 2022 16:00

Je pense pas que les fonctions MCC aient des problèmes, il doit y avoir un bug caché quelque part.
Ce n'est sans doute pas l'uart non plus car j'ai testé ton programme ainsi, avec les 2 types de routines flash, et cela plantait dans les 2 cas.

Code : Tout sélectionner

  Init_Hardware();
  CM1CON0 = 0;
  CM1CON1 = 0;
  INTERRUPT_Init();
  UART1_Init();

  for (L2 = 0x10000-128; L2 < 0x11000; L2 += 128) {
    sprintf(CRam1, "\nEcriture Bloc de 128 Bytes  %05d @ Flash %lu ", BN, L2);
    Print(CRam1);
    p1 = Buffer1;
    // FLASH_WriteBlock1(L2, p1);   
    FlashPageErase(L2);
    FlashPageWrite(L2, p1);
    __delay_ms(500);
  }


Code : Tout sélectionner

  for (i = 0; i<sizeof (Buffer1) - 1; i++) Buffer1[i] = 0;

C'est sizeof(Buffer1) plutôt que sizeof(Buffer1) - 1

Lecture d'un son avec Pic
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2597
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#34 Message par paulfjujo » lun. 19 sept. 2022 17:57

:sifflotte: attendons que l'inspecteur Bourrel dise !
humour!! sic: Bon dieu ! mais c'est bien sûr !

bon, puisqu'on est dans la zone ASM
:wink: attendons la version de Temps X avec lecture de fichier wav

oops Veuillez excuser , SVP, mon ingérence dans ce post . C pas bien !
Aide toi, le ciel ou FantasPic t'aidera

Lecture d'un son avec Pic
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2618
Enregistré en : juillet 2016
Localisation : Terre

#35 Message par Temps-x » lun. 19 sept. 2022 21:22

Bonsoir paulfjujo, satinas, et tout le forum,


:-D Pour changer un peu....voici une version par notre maître Bigonoff, pour écrire en mémoire flash, un peu de code ASM, comprends rien en C :langue:

Code : Tout sélectionner



                 
; initialisations 
                 
; --------------- 

      movlw UPPER
(flash_add-1)            ; charger bits 15 à 21 de l’adresse 
      movwf TBLPTRU                       
; dans pointeur UPPER 

      movlw HIGH
(flash_add-1)             ; charger bits 8 à 14 de l’adresse - 1 
      movwf TBLPTRH                       
; dans pointeur HIGH 
 
      movlw LOW
(flash_add-1)              ; charger bits 0 à 7 de l’adresse - 1 
      movwf TBLPTRL                       
; dans pointeur LOW 

      movlw .8                            
; 8 octets à écrire 
      movwf cmpt                          
; dans compteur 

      lfsr FSR0
,oct_ram                   ; adresse des octets en RAM 
 

                 
; écriture dans le buffer 
                 
; ----------------------- 

loop 
      movff POSTINC0
,TABLAT               ; copier octet dans registre de transfert 
      tblwt
+*                             ; pointer sur suivant, puis écrire l’octet dans buffer 
      decfsz cmpt                         
; décrémenter compteur d’octets 
      bra loop                            
; pas dernier, suivant 
 

                 
; séquence d’écriture 
                 
; -------------------- 

      bsf EECON1
,EEPGD                    ; pointer sur la mémoire flash 
      bcf EECON1
,CFGS                     ; accès autorisé à la mémoire flash  
      bsf EECON1
,WREN                     ; écritures autorisées 

      STOPINT                             
; Macro interdire les interruptions 

      movlw 0x55                          
; séquence imposée 
      movwf EECON2 

      movlw 0xAA 
      movwf EECON2 

      bsf EECON1
,WR                       ; lancer l’effacement (arrêt du PIC) 
      nop                                 
; instruction ignorée à la remise en marche 
      bcf EECON1
,WREN                     ; réinterdire écriture (sécurité) 

      STARTINT                            
; Macro remettre les interruptions si nécessaire 



:furieux: C'est vraiment être Anti-ASM pour ne pas prendre les exemples qui existe

paulfjujo a écrit :Source du message :wink: attendons la version de Temps X avec lecture de fichier wav


Je ne fais pas la même chose que toi, moi j’envoie des octets par rs232, puis le pic les lient, après c'est vrai que ça peut être intéressant de stocker un extrait de chanson d'un temps de 10 à 15 secondes en mémoire flash, ou des données comme une eeprom le ferais.

Je vais voir par la suite pour stockage des données en mémoire flash, mais pour l'instant je n'ai pas tellement de temps, car pas mal de boulot sur ma voiture.

==> A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Lecture d'un son avec Pic
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2597
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#36 Message par paulfjujo » mar. 20 sept. 2022 12:12

bonjour,


avec WAV "tout nu tou bronzé..." reparti en 4 tables de 32768 bytes
impossible de declarer la table en 1 seule ,sinon
exemple:
//unknown attribute "USERIDPROG" in chipinfo file "C:/Program Files/Microchip/MPLABX/v6.00
///packs/Microchip/PIC18F-K_DFP/1.5.114/xc8\pic\dat\ini\18f27k42.ini" at line 6424
//main.c:4281:: error: (240) too many initializers

sinon, OK , en 4 fois !

Test_ecr_Wav_Flash_18F27K42_2022.zip


il y a donc bien des limitations dues à XC8 et sa configuration ...
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Aide toi, le ciel ou FantasPic t'aidera

Lecture d'un son avec Pic
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2618
Enregistré en : juillet 2016
Localisation : Terre

#37 Message par Temps-x » mar. 20 sept. 2022 20:16

Bonsoir paulfjujo, et tout le forum,

Quand j'en aurais fini avec ma voiture, j'ouvrirais un post pour écriture en mémoire flash, :roll: en version ASM, enfin si on arrive à resté dans ce langage. :lol:


==> A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:


Retourner vers « Langage ASM »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 122 invités