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

Soft de commande CNC en asm
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#41 Message par satinas » mer. 2 mai 2018 18:15

Les sd c'est du sensible. Tu peux faire un super programme au poil pour ta sd, et quand tu en mets une autre, y a plus rien qui marche. Ce qui tourne sur un pic ne tournera pas forcément sur un autre modèle. Donc il faut bien fixer le contexte dès le départ. Ce programme je l'ai fait à partir de ma bibliothèque sd en C qui marche bien (avec mes quelques cartes), et je suis surpris qu'il pose un problème.
Mais c'est normal, c'est toujours comme ça.

La mise au point c'est une semaine mini, mais cela ne peut que marcher à l'arrivée. On en reparlera quand votre projet sera suffisamment avancé, et si possible avec des 18F, car un 16F est quand même un peu léger pour une sd.
Quel OS PC ? quel type de sd ? ... Le fait de bypasser la fat, ça implique des conditions d'utilisation précises et constantes.

J'ai galéré sur ce programme, les SUBWF et les BTFSS me donnent des boutons, mais ça rajeunit, c'est l'essentiel. Quand je pense que vous utilisez encore les banks, vouus êtes des masos :):):)
J'ai utilisé BTG qui est un bit toggle 18F
le BRA c'est un GOTO relatif, limité en portée.
Tu peux dans un premier temps te limiter aux instructions du 16F, l'essentiel c'est qu'on oublie les banks sur les 18F (je crois, car je suis plus sur de rien, le C c'est du détergent, ça nettoit tout).

Il faut te faire une config avec une sd, et on verra ensemble, d'ici là ça tournera chez moi, mais cela ne veut pas dire que ça tournera partout :)

En stock j'ai du 18F4525, du 18F4450 et 18F4550, je suppose que tes routines tourneront dessus.

Oui pas de problème avec ceux-là. Pour le câblage, regarde le site de Paul, j'ai utilisé le lecteur sd intégré des lcds.

Soft de commande CNC en asm
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2616
Enregistré en : juillet 2016
Localisation : Terre

#42 Message par Temps-x » mer. 2 mai 2018 20:30

Bonjour satinas, F6FCO, et tout le forum,

Dans l’exercice proposé, on parle de stockage, tout autre support peu convenir.

satinas a écrit :
Source du message ous utilisez encore les banks, vouus êtes des masos


:sifflotte: la nostalgie de l'honneur que veux tu....

On est obligé de passer par un départ au début, après il faut migrer vers les 18F.

Bon..., il est vraie que les 18F sont plus facile d'utilisation, pas besoin de changer de bank, plus de sdram

Par exemple sur Pic18F4525 il y a 3968 octets de sdram, avec une EEPROM de 1024 octets.

Le chapitre 5 du cours de Monsieur Bigonoff est très intéressant, je recommande ça lecture

Pour ce qui concerne la carte SD j'ai commandé ceci :

https://www.ebay.fr/itm/2PCS-Mini-SD-Ca ... 2749.l2649

et

https://www.ebay.fr/itm/2PCS-Micro-SD-S ... 2749.l2649

Après, je ne sais pas ce que ça vaut

Bon, comme je sais que F6FCO a un Pic18F4525, voici un bout de code pour faire clignoter une LED sur RA0

Code : Tout sélectionner

;**********************************************************************************************

    Errorlevel-302 ; Supprime le message "Ensure that bank bits are correct" 


    list        p
=18f4525                 ; processeur utilisé 
    
#include    <p18f4525.inc>              ; Définitions des constantes

;**********************************************************************************************

 CONFIG    OSC = INTIO67                     ; Oscillateur interne 8MHz 

 CONFIG    IESO 
= OFF                          ; Oscillateur secondaire refusé (ON/OFF)
 
 CONFIG PWRT 
= ON                          ; Délai au démarrage (ON/OFF)

 CONFIG BOREN = OFF                          ; Reset si chute de tension (ON/OFF)
 CONFIG BORV = 0                          ; Tension de reset en 1/10ème Volts 

 CONFIG WDT 
= OFF                          ; Mise hors service du watchdog (ON/OFF)

 CONFIG PBADEN = OFF                      ; PORTB<4:0> les broches sont configurées comme E/S numériques lors de la réinitialisation

 CONFIG LPT1OSC 
= OFF                     ; Timer1 configuré pour un fonctionnement plus puissant

 CONFIG MCLRE 
= OFF                       ; Mclr configuré comme entrée

 CONFIG STVREN 
= ON                          ; Reset sur débordement de pile (ON/OFF)

 CONFIG LVP = OFF                          ; Programmation basse tension autorisée (ON/OFF)

 CONFIG XINST = OFF                       ; L'extension du jeu d'instructions et le mode d'adressage indexé sont désactivés(mode hérité)

 CONFIG DEBUG = OFF                          ; Debugger hors service

 CONFIG CP0 = OFF                          ; Code protection sur block 0 (ON/OFF)
 CONFIG CP1 = OFF                          ; Code protection sur block 1 (ON/OFF)
 CONFIG CP2 = OFF                          ; Code protection sur block 2 (ON/OFF)

 CONFIG CPB = OFF                          ; Code protection sur bootblock  (ON/OFF)
 CONFIG CPD = OFF                          ; Code protection sur eeprom (ON/OFF)

 CONFIG WRT0 = OFF                          ; Protection écriture block 0 (ON/OFF)
 CONFIG WRT1 = OFF                          ; Protection écriture block 1 (ON/OFF)
 CONFIG WRT2 = OFF                          ; Protection écriture block 2 (ON/OFF)

 CONFIG WRTB = OFF                          ; Protection écriture bootblock (ON/OFF)
 CONFIG WRTC = OFF                          ; Protection écriture configurations (ON/OFF)
 CONFIG WRTD = OFF                          ; Protection écriture zone eeprom (ON/OFF)

 CONFIG EBTR0 = OFF                          ; Protection lecture de table block 0 (ON/OFF)
 CONFIG EBTR1 = OFF                          ; Protection lecture de table block 1 (ON/OFF)
 CONFIG EBTR2 = OFF                          ; Protection lecture de table block 2 (ON/OFF)
 CONFIG EBTRB = OFF                          ; Protection lecture de table bootblock (ON/OFF)

            
;*************************************** assignations ***************************************** 

; #DEFINE 

;**********************************************************************************************
;****************************** déclaration des variables *************************************
;**********************************************************************************************  

 CBLOCK H'
0
      loop1         
      loop2         
      loop3         
      loop4         
      loop5         
 ENDC


 CBLOCK    H'
80'
        wreg_temps                          ;
        status_temps                      ; 
        bsr_temps                          ;
 ENDC


;**************************** adresse de depart après reset **********************************

    ORG H'
0'
      goto debut      

;********************************* interruption haute priorité *********************************

    ORG    H'
8'
      retfie 

;********************************* interruption basse priorité *********************************

    ORG     H'
18'                                  

      movff STATUS,status_temps             ; sauve STATUS register
      movff    WREG,wreg_temps                  ; sauve registe de travaille
      movff    BSR,bsr_temps                  ; sauve le BSR registe

      movff    bsr_temps,BSR                  ; restore BSR 
      movff    wreg_temps,WREG                  ; restore registe de travail
      movff    status_temps,STATUS              ; restore STATUS 

      retfie      
;********************************************************************************************** 
debut

      movlw B'
01110011'
      movwf OSCCON            ; oscillateur à 8 Mhz 

      movlw B'
00001111'
      movwf ADCON1            ; mode analogique

      clrf TRISA

clignote
      call _1s
      bsf PORTA,0
      call _1s
      bcf PORTA,0
      bra clignote       
  
;*********************************** tempo de 1 seconde ****************************************
_1s
      movlw D'
93'
      movwf loop1
      movlw D'
38'
      movwf loop2
      movlw D'
11'
      movwf loop3

      decfsz loop1
      bra $-D'
2'
      decfsz loop2,F
      bra $-D'
6'
      decfsz loop3,F
      bra $-D'
10'

      return        

;********************************************************************************************** 
           
      end


Merci ! satinas pour tes précieux conseille, il serait intéressant de mettre en commun tous ce qu'on peu savoir sur c'est satinas.... :sifflotte:
Carte SD.

humour!! F6FCO 75 instructions :lol: :langue:

==> A+
Modifié en dernier par Temps-x le jeu. 3 mai 2018 01:07, modifié 1 fois.
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Soft de commande CNC en asm
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 1413
Âge : 70
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#43 Message par F6FCO » mer. 2 mai 2018 23:07

Hello les gens,
Je viens d'aller jeter un œil sur les nouvelles instructions, de quoi bien s'amuser, bien expliquées par Bigonoff et comme le dit Satinas on peut commencer par programmer comme sur un 16F et optimiser le code avec les nouvelles ensuite.
Je vais étudier son cours Part5 et je reviens sur le projet ensuite. Et comme Temps-X je te remercie Satinas pour ton aide précieuse :wink:

Pour les cartes capricieuses, je connais bien, j'ai fini par laisser tomber ce projet pourtant bien avancé: http://f6fco.pagesperso-orange.fr/M4RC3L.htm justement à cause de ce phénomène, que des problèmes de transferts de données entre la carte et le robot, çà a fini par me saouler.
Une porte nand prend 2 bits en entrée... la cochonne !!! :langue:

Soft de commande CNC en asm
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2616
Enregistré en : juillet 2016
Localisation : Terre

#44 Message par Temps-x » jeu. 3 mai 2018 01:05

Bonsoir,

F6FCO regarde cette vidéo, elle à fait a peu près la même chose que toi mais en plus petit : https://www.youtube.com/watch?v=0N758ojbtY4

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

Soft de commande CNC en asm
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 1413
Âge : 70
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#45 Message par F6FCO » jeu. 3 mai 2018 13:04

Elle bricole bien la petite :-D

Malheureusement pour reprendre le projet M4RC3L il faudrait retourner au C (PIC ou Arduino), pas envisageable en assembleur avec tous les calculs trigo utilisés.
Une porte nand prend 2 bits en entrée... la cochonne !!! :langue:

Soft de commande CNC en asm
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2616
Enregistré en : juillet 2016
Localisation : Terre

#46 Message par Temps-x » ven. 4 mai 2018 02:16

Bonjour F6FCO, et tout le forum,

Pour faire un robot dessinateur, nulle besoin de passer par de la complexité puisqu' il travaille en 2D, il y a une autre solution, mais
pour la trouver il faut au moins avoir écrit un programme pour CNC, après pour la 3D ça devient plus compliqué.

Quand au diamètre de l'outil, et bien autre chose, il suffit de réfléchir pour trouver la solution, avec très peu de mathématique
c'est possible je te l'assure.

F6FCO a écrit :
Source du message Elle bricole bien la petite :-D


Pour une femme je suis étonné, et en plus elle est super agréable :-) j'ai regardé ses autres vidéos sur l'imprimante 3D, oops je suis
bluffée, elle est vraiment calé dans ce domaine.

Par curiosité j'ai regardé le premier prix d'une imprimante 3D, 102 euros à cette endroit, à
ce prix là pas la peine de s'en priver. :roll:

Bon aller je me mets à coder, car je reste beaucoup trop de temps sur le forum, et du coup je fais plus rien. :sad:

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

Soft de commande CNC en asm
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 1413
Âge : 70
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#47 Message par F6FCO » ven. 4 mai 2018 09:36

Bonjour,

Temps-x a écrit :Pour faire un robot dessinateur, nulle besoin de passer par de la complexité puisqu' il travaille en 2D,

Tout dépend du robot que tu veux faire, si c'est juste un robot en XY comme fait la fille çà va, tu lui dit de se déplacer de tant en X et de tant en Y et tu dessines des trucs, mais je ne vois pas trop l’intérêt de refaire une imprimante classique. Pour un robot suspendu comme M4RC3L ou avec un seul bras type SCARA c'est bien plus compliqué, toutes les distances à parcourir par le crayon sont calculées à partir de l'angle de départ, il faut tout calculer en cinématique inverse et maitriser la trigo en programmation. Le théorème de Pythagore ne convient pas car il ne traite que les angles droits, il faut passer par les formules d'Al Kashi qui traitent toutes les valeurs d'angles, çà implique calculs de sinus, cosinus et racines carrées. En C çà se fait facile mais en assembleur c'est chaud. Pour tout ce qui est sin et cos on peut (et on doit) passer par des tables pré-calculées mais pour calculer des racines carrées de nombres à virgules... :shock:
Sur mon robot dessinateur tout ce qui est calcul fonctionnait très bien, c'est la fiabilité des transferts carte SD qui m'a fait abandonner.

Temps-x a écrit :Par curiosité j'ai regardé le premier prix d'une imprimante 3D, 102 euros à cette endroit, à
ce prix là pas la peine de s'en priver. :roll:

C'est vrai que c'est devenu à la portée de toutes les bourses, mais pour moi c'est comme une CNC, le challenge c'est de la construire soi-même. J'en ai commencée une mais comme beaucoup d'autres choses elle aussi est en stand-by http://f6fco.pagesperso-orange.fr/S1M0N3.htm, j'ai du laisser tomber tous mes projets en cours à cause de mon chantier de rénovation qui me prend tout mon temps et toute mon énergie. Retaper entièrement une vieille baraque à 64ans c'est hyper-chaud :roll:. et à la fin des journées de boulot je suis cuit et plus trop l'énergie de bidouiller.
Mais bon, je ne vais pas râler, c'est justement à cause de çà que je suis venu aux PIC... pour m'occuper calmement le soir après le boulot :wink:
Une porte nand prend 2 bits en entrée... la cochonne !!! :langue:

Soft de commande CNC en asm
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#48 Message par satinas » ven. 4 mai 2018 10:59

Bonjour à tous,
En parlant de pic, ne lâche pas ce projet. Parce que le soft, actuellement, il détecte les cartes sd, il cherche une fat32, et il va bientôt lister les fichiers de la racine de la partition. Ca serait bien qu'il serve à quelque chose, ce soft :)
En tout cas j'ai pris beaucoup de plaisir à le faire, et ça m'a fait réviser la fat, et mettre à jour ma bibliothèque C.
Je retourne à l'écran 7"
bye

Soft de commande CNC en asm
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 1413
Âge : 70
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#49 Message par F6FCO » ven. 4 mai 2018 14:43

Bonjour Satinas,
Je suis ton projet et si ton soft peut nous servir c'est tout bon. Pour l'instant j'apprends à migrer vers les 18F et en // je m'intéresse à la liaison UART, peut-être que c'est encore la solution la plus simple, enfin je dis çà mais je n'y connais rien :lol:, encore jamais joué avec.
Le but c'est d'arriver à transférer du gcode du PC au PIC, d'une manière ou d'une autre. Une CNC peut-être reliée avec un fil à la patte mais la carte SD est incontournable pour un robot individuel.
Une porte nand prend 2 bits en entrée... la cochonne !!! :langue:

Soft de commande CNC en asm
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#50 Message par satinas » ven. 4 mai 2018 14:57

La liaison série est la plus simple. Un logiciel comme TeraTerm permet d'envoyer un fichier brut sur le port série. Mais il faudrait tout de même un contrôle du transfert par checksum ou autre, et là il faudra peut être programmer sur PC aussi. Le contrôle de la communication est nécessaire afin d'éviter que le chariot aille se balader dans la pièce d'à côté ... Le checksum est aussi nécessaire pour la carte sd.


Retourner vers « Langage ASM »

Qui est en ligne

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