Bonsoir,
je commence à douter de voir amener ce fil à bon port, on y tire trop de bords et le cap n'est pas connu.
JR
-----
Bonsoir,
je commence à douter de voir amener ce fil à bon port, on y tire trop de bords et le cap n'est pas connu.
JR
l'électronique c'est pas du vaudou!
Bonsoir,
Oui, c'est un peu n'importe quoi: en #1, on a un anémomètre qui sort une valeur analogique en Beaufort (0 pour 0 et 3V pour 9), on parle ensuite de moyenne sur 10 mn pour calculer ce que l'on a déjà...
Quand on saura ce qu'il faut faire et avec quoi, les cerveaux pourront commencer à réfléchir.
MM
Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
Sa vous direz s’il vous plaît d’avoir une traduction en code car je vous assure je suis médiocre en assembleur et ces explication ,c'est vraiment du génie
moyenne avec oubli?? on prend les donnée dans un interval de temps est on fait la moyenne c'est a sa que je pensais
un LCD pour afficher un seul car evoluant de 0 à 9 ? : oui
un LCD pour afficher un seul car evoluant de 0 à 9 ? ou avec du texte supplementaire stocké en eeprom ? :sa je ne sait vrement pas je me dit faire ce qui est le mieu a faire
la sortie en tension analogique est proportionnelle à l’échelle Beaufort . je me dit on trouve une fréquence de coupure qui dépend du temps de moyennage, et qui prend la tension analogique en entrée (donc utilisation d’un ADC) en suit prends la sortie de ce filtre et l'envoies en SPI.Bonsoir,
Oui, c'est un peu n'importe quoi: en #1, on a un anémomètre qui sort une valeur analogique en Beaufort (0 pour 0 et 3V pour 9), on parle ensuite de moyenne sur 10 mn pour calculer ce que l'on a déjà...
Quand on saura ce qu'il faut faire et avec quoi, les cerveaux pourront commencer à réfléchir.
MM
Bonjour
ce cahier de charge nous a etais donner parmie tend autre cahier de charge et
Je suis fort voir même très fort en langage structure (Delphi, Pascal) en LabVIEW, en vision builder mai pas en assembleur car je ne les pas étudier ce cahier de charge fait partie d’un des cahiers de charge d’un projet d’ensemble qu’on a commencé, tout les partie Robotique est automation ont était finaliser programmer et monter sauf ce cahier de charge si .et personne d’entre nous ne si connait en langage Assembleur du moins je suis le seul qui essaie au moins de comprendre ce langage mai devant vous comme vous lavait mainte fois constater je suis médiocre
Quel qu’un peut-il s’il vous plaît nos aidée avec ce programme ? on voulait changer de pic mai il est exsiger d'utiliser que ce pic la (PIC10F220)
Alors j’implore une arme de bonne volonté de m’aider sur ce programme
Ou bien de me guider Pas à pas du début jusqu'à la fin
Merci pour votre bonne compréhension
En l'état, ta demande ne concerne pas seulement le programme en assembleur, mais la réalisation de la quasi-totalité de ton projet.
Pour fixer les idées, tu es censé faire :
- un travail documentaire portant sur les éléments donnés dans le sujet, afin de bien comprendre le besoin, et d'en découvrir les principes et les contraintes ;
- une conception fonctionnelle, consistant à choisir (dans la limite de ce qui n'a pas encore été imposé) de quoi le produit sera constituée (matériels, fonctions logicielles), ce qu'il devra faire et de quelle façon (principes de fonctionnement, performances, organisation, méthodes, formats et protocoles imposés) ;
- une conception technique du projet, s'appuyant sur un travail documentaire, qui consiste à décider dans le détail comment seront réalisés chacun des éléments de conception fonctionnelle (algorithmes, circuits) ;
- la réalisation du produit proprement dit, avec notamment le codage du logiciel tel qu'il a été précédemment décidé.
La connaissance de l'assembleur PIC 10F220 n'est donc nécessaire qu'à la toute dernière étape, laquelle ne pourra débuter que lorsque toutes les étapes précédentes auront été finalisées. Notamment, tu devrais être en mesure, dès l'avant-dernière étape, de décrire en français (ou dans une autre langue, peu importe) toute la suite des opérations réalisées par ton programme.
Par ailleurs, comme il s'agit vraisemblablement d'un travail scolaire, la politique du forum en la matière consiste à attendre que tu présentes le travail que tu as déjà effectué avant de commencer à en discuter.
Chargée à blanc ?Alors j’implore une arme de bonne volonté de m’aider sur ce programme
Compilation d'un test LCD SPI 74HC595 avec un 12F683
donne
on est deja OVER avec le PIC10F200 !Used RAM (bytes): 14
Used ROM (program words): 177
et SANS la mesure ADC , ni le calcul de moyenne.
Meme si en ASM on peut optimiser un programme au plus court.
Avec le code C, reduit au minimum :
Init LCD et affichage seulement de la force du vent sur 1 seul caractere 0 à 9 ....
Maintenant tu peux toujours demander à ton prof de soutien, de venir sur ce post
preciser pourquoi il s'obtient à vouloir que tu utilises un 10F200 et surtout
qu'il en prouve la faisabilité..
source C et fichier listing correspondant
SerialLcdTest.zip
Mille fois merci
Mais j'aurais encore un problème avec, c’est que je dois l'avoir en langage assembleur, est c'est mon véritable problème, je n'ai pas de connaissance en assembleur d'autre langue oui mais en assembleur non c’est la raison pour laquelle c’est si difficile chez moi
tiré de ce lien
version en asm pour 16F88
à adapter pour le 10F200 en comparant le jeu d'instruction des 2 datasheets
et à tester separement du reste pour voir ce qu'il reste dispo en RAM et ROM
Code:Code (text): List P=16F88 ; List directive to define processor, to adapt to your Processor #Include <P16F88.inc> ;to adapt to your Processor specific variable definitions __CONFIG _CONFIG1, _PWRTE_ON & _WDT_OFF & _INTRC_IO & _BODEN_OFF & _LVP_OFF & _CP_OFF & _MCLR_OFF __CONFIG _CONFIG2, _IESO_OFF & _FCMEN_OFF Cblock 0x020 ; to adapt for PIC10F200 ie : 0x010 Dlay ; 8 Bit Delay Variable Temp ; Temporary Value Used When Sending Out Data NOTemp ; Temporary Value to "NybbleOutput" endc #Define Data PORTA,0 #Define Clock PORTA,1 ; Macros ClockStrobe MACRO ; Strobe the Data Bit bsf Clock bcf Clock ENDM EStrobe MACRO ; Strobe the "E" Bit bsf Data bcf Data ENDM ORG 0x00 ; Processor Reset Vector goto START ; Go to beginning of program ORG 0x04 ; Interrupt Vector Location START CLRF PORTA ; PortA all low CLRF PORTB ; PortB all low BSF STATUS,RP0 ; Bank 1 MOVLW b'01100000' ; Make clock 4Mhz IORWF OSCCON MOVLW b'00100000' ; Bit 5 input MOVWF TRISA ; PortA all output except MCLR CLRF TRISB ; PortB all output CLRF ANSEL ; Make PORTA all digital I/O BCF STATUS,RP0 ; Bank 0 ; ===== Initialize LCD ===== call Dlay5 ; Wait 20 msecs before Reset call Dlay5 call Dlay5 call Dlay5 bcf STATUS, C ; Clear Carry (Instruction Out) movlw 0x03 ; Reset Command call NybbleOut ; Send the Nybble call Dlay5 ; Wait 5 msecs before Sending Again EStrobe call Dlay160 ; Wait 160 usecs before Sending the Third Time EStrobe call Dlay160 ; Wait 160 usecs before Sending the Third Time bcf STATUS, C movlw 0x02 ; Set 4 Bit Mode call NybbleOut call Dlay160 movlw 0x28 ; Note that it is a 2 Line Display call SendINS movlw 0x08 ; Turn off the Display call SendINS movlw 0x01 ; Clear the Display RAM call SendINS call Dlay5 ; Note, Can take up to 4.1 msecs movlw 0x06 ; Enable Cursor Move Direction call SendINS movlw 0x0C ; Turn the LCD Back On call SendINS movlw '0' call SendCHAR movlw '1' call SendCHAR movlw '2' call SendCHAR movlw '3' call SendCHAR movlw '4' call SendCHAR movlw '1' call SendCHAR movlw '1' call SendCHAR movlw '1' call SendCHAR Loop ; Loop Forever when Done goto Loop ; ===== Subroutines ===== SendCHAR ; Send the Character to the LCD movwf Temp ; Save the Temporary Value swapf Temp, w ; Send the High Nybble bsf STATUS, C ; RS = 1 call NybbleOut movf Temp, w ; Send the Low Nybble bsf STATUS, C call NybbleOut return SendINS ; Send the Instruction to the LCD movwf Temp ; Save the Temporary Value swapf Temp, w ; Send the High Nybble bcf STATUS, C ; RS = 0 call NybbleOut movf Temp, w ; Send the Low Nybble bcf STATUS, C call NybbleOut return NybbleOut ; Send a Nybble to the LCD movwf NOTemp ; Save the Nybble to Shift Out swapf NOTemp ; Setup to Output to the High Part of the Byte movlw 6 ; Clear the Shift Register movwf Dlay NO2Loop1 ClockStrobe decfsz Dlay goto NO2Loop1 movlw 5 ; #### - Now, Shift out the Data with the "RS" Bit movwf Dlay bsf Data ; Put out the Gate Bit ClockStrobe NO2Loop2 bcf Data ; #### - Clear the Data Bit (which is the Clock) btfsc STATUS, C ; #### - If the Bit to be output is a "1", Shift it Out bsf Data ClockStrobe rlf NOTemp ; #### - Shift the Next Bit into the Carry Flag decfsz Dlay goto NO2Loop2 EStrobe ; Strobe out the LCD Data return Dlay160 ; Delay 160 usecs movlw 216 ; Loop Until Carry Set addlw 1 btfss STATUS, C goto $-2 return Dlay5 ; Delay 5 msecs movlw 4 ; Set up the Delay movwf Dlay movlw 24 addlw 1 btfsc STATUS, Z decfsz Dlay got0 $-3 return end
Excusez-moi pour le dérangement encore une fois
J'aimerais faire un SPI-software en langage assembleur avec ce schéma
Et j’aimerais bien savoir comment si prendre. Quel qu'un pourrais-t-il m'aidée?
Quand tu sauras ce que tu veux . . .
un coup pour voir ...
test avec un 12F1840 en ASM du montage LCD 74164 .. montage 2 fils
Affiche sur la 1ere ligne "0123456789"
Affiche sur la2em ligne , la valeur 8bits de la voie analogique RA0
une etoile = separateur
et la valeur en Beaufort , en divisant la valeur brute par 28 .. soit maxi 255/28=9
(filtrage mesure à rajouter)
Pic12F1840_LCD_2wire_via_74164.jpg
et le code en MPLAB ASM
12F1840_LCD_2w.zip
tu n'as plus qu'à adapter le code avec ton PIC...et rajouter le calcul de moyenne à ta sauce..
NOTA: ATTENTION
avec un potar servant à elaborer la mesure vitesse du vent 0 à5V => 0 à255 pts
il y a interaction avec la PIN ICSP si le curseur du potar(4.7k) n'est pas au milieu ..
ou alors debrancher le curseur , lors de l'envoi du fichier Hex via le Pickit2.
j'ai mis une compilation conditionelle #ifdef ...
il suffit de mettre la definition en commentaire pour enlever le surplus de code
on a alors QUE l'affichage sur 1 digit ( valeur beaufort)
Nota :
je n'ai pas pu mettre la reservation de data RAM en mode conditionnel pour limiter la
quantité de registre RAM utilisés..
error 102 ..
si quelqu'un peut me dire ou est le bleme, cela m'arrangerait .